diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ShellServlet.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ShellServlet.java
index 8798038..20ed945 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ShellServlet.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/misc/ShellServlet.java
@@ -29,6 +29,7 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.felix.shell.ShellService;
+import org.apache.felix.webconsole.DefaultVariableResolver;
 import org.apache.felix.webconsole.SimpleWebConsolePlugin;
 import org.apache.felix.webconsole.WebConsoleUtil;
 import org.apache.felix.webconsole.internal.OsgiManagerPlugin;
@@ -125,6 +126,14 @@
      */
     protected void renderContent( HttpServletRequest request, HttpServletResponse response ) throws IOException
     {
+        DefaultVariableResolver vr = ( DefaultVariableResolver ) WebConsoleUtil.getVariableResolver( request );
+        if ( getShellService() == null )
+        {
+            vr.put( "shell.status", "Shell Service not available" );
+            vr.put( "shell.disabled", "true" );
+        } else {
+            vr.put( "shell.disabled", "false" );
+        }
         response.getWriter().print(TEMPLATE);
     }
 
diff --git a/webconsole/src/main/resources/res/ui/shell.js b/webconsole/src/main/resources/res/ui/shell.js
index 8a79c8e..7d34014 100644
--- a/webconsole/src/main/resources/res/ui/shell.js
+++ b/webconsole/src/main/resources/res/ui/shell.js
@@ -17,14 +17,14 @@
 
 // elements cache
 var consoleframe = false;
-var console = false;
+var konsole = false;
 var command = false;
 
 function executeCommand(cmd) {
 	$.post(document.location.href, { 'command' : encodeURIComponent(cmd) },
 		function(result) {
-			console.removeClass('ui-helper-hidden').append(result);
-			consoleframe.attr('scrollTop', console.attr('scrollHeight'));
+			konsole.removeClass('ui-helper-hidden').append(result);
+			consoleframe.attr('scrollTop', konsole.attr('scrollHeight'));
 			command.val('');
 			shellCommandFocus();
 		}, 'html');
@@ -34,22 +34,32 @@
 
 // automatically executed on load
 $(document).ready(function(){
-	// init cache
-	consoleframe = $('#consoleframe').click(shellCommandFocus);
-	console      = $('#console');
-	command      = $('#command').focus();
-
-	// attach action handlers
-	$('#clear').click(function() {
-		console.addClass('ui-helper-hidden').html('');
-		consoleframe.attr('scrollTop', 0);
-		shellCommandFocus();
-	});
-	$('#help').click(function() {
-		executeCommand('help');
-	});
-	$('form').submit(function() {
-		executeCommand(command.val());
-		return false;
-	});
+    
+    // disable the shell form if the shell service is not available
+    if (shellDisabled) {
+    
+        $('#shell_form').hide();
+    
+    } else {
+    
+    	// init cache
+    	consoleframe = $('#consoleframe').click(shellCommandFocus);
+    	konsole      = $('#console');
+    	command      = $('#command').focus();
+    
+    	// attach action handlers
+    	$('#clear').click(function() {
+    		konsole.addClass('ui-helper-hidden').html('');
+    		consoleframe.attr('scrollTop', 0);
+    		shellCommandFocus();
+    	});
+    	$('#help').click(function() {
+    		executeCommand('help');
+    	});
+    	$('form').submit(function() {
+    		executeCommand(command.val());
+    		return false;
+    	});
+    	
+	}
 });
diff --git a/webconsole/src/main/resources/templates/shell.html b/webconsole/src/main/resources/templates/shell.html
index 9a648a4..f0ed65c 100644
--- a/webconsole/src/main/resources/templates/shell.html
+++ b/webconsole/src/main/resources/templates/shell.html
@@ -1,8 +1,12 @@
 ﻿<script type="text/javascript" src="res/ui/shell.js"></script>
-
+<script type="text/javascript">
+// <![CDATA[
+var shellDisabled = ${shell.disabled};
+// ]]>
+</script>
 <p class="statline">${shell.status}</p>
 
-<form method="post" action="${pluginRoot}">
+<form id="shell_form" method="post" action="${pluginRoot}">
 	<!-- top header -->
 	<div class="ui-widget-header ui-corner-top buttonGroup">
 		<input id="help" value="${help}" type="button" />
