diff --git a/karaf/demos/web/README.txt b/karaf/demos/web/README.txt
index e3adccd..95a22c3 100644
--- a/karaf/demos/web/README.txt
+++ b/karaf/demos/web/README.txt
@@ -1,28 +1,108 @@
-################################################################################
-#
-#    Licensed to the Apache Software Foundation (ASF) under one or more
-#    contributor license agreements.  See the NOTICE file distributed with
-#    this work for additional information regarding copyright ownership.
-#    The ASF licenses this file to You under the Apache License, Version 2.0
-#    (the "License"); you may not use this file except in compliance with
-#    the License.  You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS,
-#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#    See the License for the specific language governing permissions and
-#    limitations under the License.
-#
-################################################################################
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
-This is an example showing how to embed ServiceMix Kernel in a web application.
-You can either:
-  * build the web app using "mvn package" and deploy the web application to your favorite web container
-  * run the web app from the command line using the "mvn package jetty:run" command
-  
-Once the web application is started, you can use the Apache Felix Karaf client to connect to the running server:
-  cd [karaf-install-dir]
-  java -jar lib/karaf-client.jar
-  
+EMBEDDING KARAF IN A WEB APPLICATION
+====================================
+
+Purpose
+-------
+Embed Karaf in a web application.
+
+
+Prerequisites for Running the Example
+-------------------------------------
+You must have the following installed on your machine:
+
+  - JDK 1.5 or higher
+
+  - Maven 2.0.9 or higher
+
+
+Building and Deploying
+----------------------
+You can build and deploy this example in two ways:
+
+- A. Using Jetty: Quick and Easy
+  This option is useful if you want to see the example up and
+  running quickly.
+   
+- B. Using Your Favorite Web Container
+  This option is useful if you want to see Karaf running
+  as a web application inside your favorite web container.
+
+
+A. Using Jetty: Quick and Easy
+------------------------------
+To build the example and deploy to Jetty, complete the
+following steps:
+
+1. In a command prompt/shell, change to the directory
+   that contains this README.txt file.
+
+2. Enter the following Maven command:
+
+     mvn package jetty:run
+
+This Maven command builds the example web application, starts
+Jetty and deploys the web application to Jetty. Once complete,
+you should see the following printed to the console:
+
+[INFO] Started Jetty Server
+[INFO] Starting scanner at interval of 10 seconds.
+
+Running a Client
+----------------
+To test the example, you can use the Apache Felix Karaf client
+to connect to the server and issue a Karaf command. For example,
+try executing the "features:list" command as follows:
+
+1. In a command prompt/shell, change to your product
+   installation directory.
+
+2. Run the following command:
+
+    java -jar lib/karaf-client.jar features:list
+
+In this case, you should see output similar to the following:
+
+[uninstalled] [2.5.6.SEC01          ] spring     karaf-${version}
+[uninstalled] [1.2.0                ] spring-dm  karaf-${version}
+[uninstalled] [1.1.0.1-fuse-SNAPSHOT] wrapper    karaf-${version}
+[uninstalled] [1.1.0.1-fuse-SNAPSHOT] obr        karaf-${version}
+[uninstalled] [1.1.0.1-fuse-SNAPSHOT] http       karaf-${version}
+[uninstalled] [1.1.0.1-fuse-SNAPSHOT] webconsole karaf-${version}
+[installed  ] [1.1.0.1-fuse-SNAPSHOT] ssh        karaf-${version}
+[installed  ] [1.1.0.1-fuse-SNAPSHOT] management karaf-${version}
+
+
+B. Using Your Favorite Web Container
+------------------------------------
+You can deploy the web application to your favorite web
+container, by completing the following steps:
+
+1. In a command prompt/shell, change to the directory
+   that contains this README.txt file.
+   
+2. Enter the following command:
+
+     mvn package
+     
+Maven builds the web application, web-${version}.war, and 
+saves it in the target directory of this example. Deploy this
+WAR file to your favorite web container. Once the application
+is running, you can test it using the Apache Felix Karaf client
+as described in the "Running a Client" section above.
\ No newline at end of file
