diff --git a/main/doc/apache-felix-framework-launching-and-embedding.html b/main/doc/apache-felix-framework-launching-and-embedding.html
index fc4887d..533f42c 100644
--- a/main/doc/apache-felix-framework-launching-and-embedding.html
+++ b/main/doc/apache-felix-framework-launching-and-embedding.html
@@ -12,27 +12,29 @@
 <ul>
 	<li><a href="http://felix.apache.org/site/news.html" title="news">news</a></li>
 	<li><a href="http://felix.apache.org/site/license.html" title="license">license</a></li>
-	<li><a href="http://felix.apache.org/site/downloads.cgi" rel="nofollow">downloads</a></li>
+	<li><a href="http://felix.apache.org/site/downloads.cgi" class="external-link" rel="nofollow">downloads</a></li>
 	<li><a href="http://felix.apache.org/site/documentation.html" title="documentation">documentation</a></li>
 	<li><a href="http://felix.apache.org/site/mailinglists.html" title="mailinglists">mailing lists</a></li>
 	<li><a href="http://felix.apache.org/site/contributing.html" title="Contributing">contributing</a></li>
-	<li><a href="http://www.apache.org/" rel="nofollow">asf</a></li>
-	<li><a href="http://www.apache.org/foundation/sponsorship.html" rel="nofollow">sponsorship</a></li>
-	<li><a href="http://www.apache.org/foundation/thanks.html" rel="nofollow">sponsors</a>
+	<li><a href="http://www.apache.org/" class="external-link" rel="nofollow">asf</a></li>
+	<li><a href="http://www.apache.org/foundation/sponsorship.html" class="external-link" rel="nofollow">sponsorship</a></li>
+	<li><a href="http://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">sponsors</a>
 <!-- ApacheCon Ad -->
 <iframe src="apache-felix-framework-launching-and-embedding_files/button.html" style="border-width: 0pt; float: left;" frameborder="0" height="135" scrolling="no" width="135"></iframe>
 <p style="height: 100px;">
 <!-- ApacheCon Ad -->
-</p></li></ul> </div>
+</p></li></ul>
+    </div>
     <div class="main">
 <h1><a name="ApacheFelixFrameworkLaunchingandEmbedding-ApacheFelixFrameworkLaunchingandEmbedding"></a>Apache Felix Framework Launching and Embedding</h1>
 
 <p><em>[This document describes framework launching introduced in Felix
-2.0.0 and is incompatible with older versions of the Felix framework.]</em></p>
+Framework 2.0.0 and continuing with the latest releases; it is
+incompatible with older versions of the Felix framework.]</em></p>
 
 <ul>
 	<li><a href="#ApacheFelixFrameworkLaunchingandEmbedding-introduction">Introduction</a></li>
-	<li><a href="#ApacheFelixFrameworkLaunchingandEmbedding-overview">API Overview</a>
+	<li><a href="#ApacheFelixFrameworkLaunchingandEmbedding-overview">OSGi Launching and Embedding API Overview</a>
 	<ul>
 		<li><a href="#ApacheFelixFrameworkLaunchingandEmbedding-creatingandconfiguring">Creating and Configuring the Framework Instance</a></li>
 		<li><a href="#ApacheFelixFrameworkLaunchingandEmbedding-startinginstance">Starting the Framework Instance</a></li>
@@ -66,23 +68,24 @@
 
 <h1><a name="ApacheFelixFrameworkLaunchingandEmbedding-Introduction"></a>Introduction</h1>
 
-<p>The Apache Felix framework is intended to be easily launchable and
-embeddable. For example, Felix avoids the use of system properties for
-configuration, since these are globals and can cause interference if
-multiple framework instances are created in the same VM. Felix also
-tries to multiplex singleton facilities, like the URL stream handler
-factory. The goal is to make it possible to use Felix in as many
-scenarios as possible; however, this is still just a goal. In other
-words, this is a work in progress and if any issues arise, it would be
-greatly appreciated if they are brought to the attention of the Felix
-community. The next section provides a Felix API overview, while the
-remainder of the document is divided into two sections, one focusing on
-how to launch Felix and one focusing on how to embed Felix into a host
-application.</p>
+<p>The Apache Felix Framework is intended to be easily launchable and
+embeddable. For example, the Felix framework implementation avoids the
+use of system properties for configuration, since these are globals and
+can cause interference if multiple framework instances are created in
+the same VM. The framework also tries to multiplex singleton
+facilities, like the URL stream handler factory. The goal is to make it
+possible to use the framework in a variety of scenarios; however, this
+is still just a goal. In other words, this is a work in progress and if
+any issues arise, it would be greatly appreciated if they are brought
+to the attention of the Felix community. The next section provides an
+overview of the standard OSGi launching and embedding API for
+frameworks, while the remainder of the document is divided into two
+sections, one focusing on how to launch Felix and one focusing on how
+to embed Felix into a host application.</p>
 
 <p><a name="ApacheFelixFrameworkLaunchingandEmbedding-overview"></a></p>
 
-<h1><a name="ApacheFelixFrameworkLaunchingandEmbedding-APIOverview"></a>API Overview</h1>
+<h1><a name="ApacheFelixFrameworkLaunchingandEmbedding-OSGiLaunchingandEmbeddingAPIOverview"></a>OSGi Launching and Embedding API Overview</h1>
 
 <p>The Felix framework is implemented by the <tt>org.apache.felix.framework.Felix</tt> class or just <tt>Felix</tt>
 for short. As part of the R4.2 OSGi specification, the launching and
@@ -125,17 +128,17 @@
 <pre class="code-java"><span class="code-keyword">public</span> <span class="code-keyword">interface</span> Framework <span class="code-keyword">extends</span> Bundle
 {
     void init();
-    FrameworkEvent waitForStop();
+    FrameworkEvent waitForStop(<span class="code-object">long</span> timeout);
 }
 </pre>
 </div></div>
 
-<p>To actually construct a framework instance, the R4.2 specification defines the FrameworkFactory interface:</p>
+<p>To actually construct a framework instance, the R4.2 specification defines the <tt>FrameworkFactory</tt> interface:</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java"><span class="code-keyword">public</span> <span class="code-keyword">interface</span> FrameworkFactory
 {
-    Framework newFramework(Map configMap);
+    Framework newFramework(Map config);
 }
 </pre>
 </div></div>
@@ -163,14 +166,12 @@
 to all bundles from the environment (i.e., no need to import them);
 there is no default value for this property and its use should be
 avoided.</li>
-	<li><tt>org.osgi.framework.storage</tt> - specifies the
-path to a directory, which will be created if it does not exist, to use
-for bundle cache storage; the default value for this property is "<tt>felix-cache</tt>" in the current working directory.</li>
-	<li><tt>org.osgi.framework.storage.clean</tt>
-- specifies whether the bundle cache should be flushed; the default
-value for this property is "none", but it can be changed to
-"onFirstInit" to flush the bundle cache when the framework is
-initialized.</li>
+	<li><tt>org.osgi.framework.bundle.parent</tt> - Specifies which class loader is used for boot delegation. Possible values are: <tt>boot</tt> for the boot class loader, <tt>app</tt> for the application class loader, <tt>ext</tt> for the extension class loader, and <tt>framework</tt> for the framework's class loader. The default is <tt>boot</tt>.</li>
+	<li><tt>org.osgi.framework.storage</tt>
+- specifies the path to a directory, which will be created if it does
+not exist, to use for bundle cache storage; the default value for this
+property is "<tt>felix-cache</tt>" in the current working directory.</li>
+	<li><tt>org.osgi.framework.storage.clean</tt> - specifies whether the bundle cache should be flushed; the default value for this property is "<tt>none</tt>", but it can be changed to "<tt>onFirstInit</tt>" to flush the bundle cache when the framework is initialized.</li>
 	<li><tt>org.osgi.framework.startlevel.beginning</tt> - specifies the start level the framework enters upon startup; the default value for this property is 1.</li>
 </ul>
 
@@ -203,7 +204,7 @@
 after construction. If you need a different configuration, you must
 create a new framework instance.</p>
 
-<div class="panelMacro"><table class="warningMacro"><colgroup><col width="24"><col></colgroup><tbody><tr><td valign="top"><img src="apache-felix-framework-launching-and-embedding_files/forbidden.gif" alt="" align="absmiddle" border="0" height="16" width="16"></td><td><b>WARNING</b><br><p>Felix configuration properties have change considerably starting from <tt>1.4.0</tt>; if you are upgrading from an earlier version, the <a href="http://felix.apache.org/site/apache-felix-framework-usage-documentation.html#ApacheFelixFrameworkUsageDocumentation-migrating">usage document</a> describes the configuration property changes.</p></td></tr></tbody></table></div>
+<div class="panelMacro"><table class="warningMacro"><colgroup><col width="24"><col></colgroup><tbody><tr><td valign="top"><img src="apache-felix-framework-launching-and-embedding_files/forbidden.gif" alt="" align="absmiddle" border="0" height="16" width="16"></td><td><b>WARNING</b><br>Felix configuration properties have change considerably starting from <tt>1.4.0</tt>; if you are upgrading from an earlier version, the <a href="http://felix.apache.org/site/apache-felix-framework-usage-documentation.html#ApacheFelixFrameworkUsageDocumentation-migrating">usage document</a> describes the configuration property changes.</td></tr></tbody></table></div>
 
 <p><a name="ApacheFelixFrameworkLaunchingandEmbedding-startinginstance"></a></p>
 
@@ -217,7 +218,7 @@
 </ul>
 
 
-<p>The <tt>init()</tt> method is necessary since the framework does not have a <tt>BundleContext</tt> when it is first created, so a transition to the <tt>Bundle.STARTING</tt> state is required to acquire its context (via <tt>Bundle.getBundleContext()</tt>) for performing various tasks, such as installing bundles. Note that Felix also provides the <tt>felix.systembundle.activators</tt> property that serves a similar purpose, but is not standard. After the <tt>init()</tt> method completes, the follow actions have been performed:</p>
+<p>The <tt>init()</tt> method is necessary since the framework does not have a <tt>BundleContext</tt> when it is first created, so a transition to the <tt>Bundle.STARTING</tt> state is required to acquire its context (via <tt>Bundle.getBundleContext()</tt>) for performing various tasks, such as installing bundles. Note that the Felix framework also provides the <tt>felix.systembundle.activators</tt> property that serves a similar purpose, but is not standard. After the <tt>init()</tt> method completes, the follow actions have been performed:</p>
 
 <ul>
 	<li>Event handling is enabled.</li>
@@ -257,20 +258,20 @@
 generally want to more than that, such as automatically installing and
 starting bundles when you start the framework instance. The default
 Felix launcher defines reusable functionality to automatically install
-and/or start bundles upon framework startup; see the <a href="http://felix.apache.org/site/apache-felix-framework-usage-documentation.html#ApacheFelixFrameworkUsageDocumentation-configuringfelix">usage document</a> for more information on configuring Felix and on the various configuration properties.</p>
+and/or start bundles upon framework startup; see the <a href="http://felix.apache.org/site/apache-felix-framework-usage-documentation.html#ApacheFelixFrameworkUsageDocumentation-configuringfelix">usage document</a> for more information on configuring the Felix framework and on the various configuration properties.</p>
 
-<p>The remainder of this section describes how the standard Felix
-launcher works as well as how to create a custom launcher for Felix.</p>
+<p>The remainder of this section describes how the standard Felix launcher works as well as how to create a custom launcher.</p>
 
 <p><a name="ApacheFelixFrameworkLaunchingandEmbedding-standardlauncher"></a></p>
 
 <h2><a name="ApacheFelixFrameworkLaunchingandEmbedding-StandardFelixFrameworkLauncher"></a>Standard Felix Framework Launcher</h2>
 
-<p>The standard Felix launcher is very simple and is not intended to
-solve every possible requirement; it is intended to work for most
-standard situations. Most special launching requirements should be
-resolved by creating a custom launcher. This section describes how the
-standard launcher works. The following code represents the complete <tt>main()</tt> method of the standard launcher, each numbered comment will be described in more detail below:</p>
+<p>The standard Felix framework launcher is very simple and is not
+intended to solve every possible requirement; it is intended to work
+for most standard situations. Most special launching requirements
+should be resolved by creating a custom launcher. This section
+describes how the standard launcher works. The following code
+represents the complete <tt>main()</tt> method of the standard launcher, each numbered comment will be described in more detail below:</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java"><span class="code-keyword">public</span> <span class="code-keyword">static</span> void main(<span class="code-object">String</span>[] args) <span class="code-keyword">throws</span> Exception
@@ -295,6 +296,7 @@
             cacheDir = args[i];
         }
     }
+
     <span class="code-keyword">if</span> ((args.length &gt; 3) || (expectBundleDir &amp;&amp; bundleDir == <span class="code-keyword">null</span>))
     {
         <span class="code-object">System</span>.out.println(<span class="code-quote">"Usage: [-b &lt;bundle-deploy-dir&gt;] [&lt;bundle-cache-dir&gt;]"</span>);
@@ -331,7 +333,7 @@
 </span>    <span class="code-object">String</span> enableHook = configProps.getProperty(SHUTDOWN_HOOK_PROP);
     <span class="code-keyword">if</span> ((enableHook == <span class="code-keyword">null</span>) || !enableHook.equalsIgnoreCase(<span class="code-quote">"<span class="code-keyword">false</span>"</span>))
     {
-        <span class="code-object">Runtime</span>.getRuntime().addShutdownHook(<span class="code-keyword">new</span> <span class="code-object">Thread</span>() {
+        <span class="code-object">Runtime</span>.getRuntime().addShutdownHook(<span class="code-keyword">new</span> <span class="code-object">Thread</span>(<span class="code-quote">"Felix Shutdown Hook"</span>) {
             <span class="code-keyword">public</span> void run()
             {
                 <span class="code-keyword">try</span>
@@ -350,10 +352,6 @@
         });
     }
 
-    <span class="code-comment">// Print welcome banner.
-</span>    <span class="code-object">System</span>.out.println(<span class="code-quote">"\nWelcome to Felix"</span>);
-    <span class="code-object">System</span>.out.println(<span class="code-quote">"================\n"</span>);
-
     <span class="code-keyword">try</span>
     {
         <span class="code-comment">// (8) Create an instance and initialize the framework.
@@ -373,7 +371,7 @@
     {
         <span class="code-object">System</span>.err.println(<span class="code-quote">"Could not create framework: "</span> + ex);
         ex.printStackTrace();
-        <span class="code-object">System</span>.exit(-1);
+        <span class="code-object">System</span>.exit(0);
     }
 }
 </pre>
@@ -392,7 +390,7 @@
 specified. The file is a standard Java properties file, but it also
 supports property substitution using <tt>${&lt;property-name</tt>} syntax. Property substitution can be nested; only system properties will be used for substitution.</li>
 	<li>Load any configuration properties specified in the <tt>config.properties</tt> file; this file is typically located in the <tt>conf/</tt> directory of the Felix installation directory, but it can be specified directly using the <tt>felix.config.properties</tt>
-system property. This file is used to configure the Felix instance
+system property. This file is used to configure the framework instance
 created by the launcher. The file is a standard Java properties file,
 but it also supports property substitution using "<tt>${&lt;property-name&gt;</tt>}"
 syntax. Property substitution can be nested; configuration and system
@@ -427,20 +425,18 @@
 
 <p>This section creates a bare-bones launcher to demonstrate the
 minimum requirements for creating an interactive launcher for the Felix
-framework. This example uses the standard Felix shell bundles for
-interactivity, but any other bundles could be used instead. For
-example, the shell service and telnet bundles could be used to launch
-Felix and make it remotely accessible.</p>
-
-<p>This example launcher project has the following directory structure:</p>
+framework. This example uses the standard Gogo shell bundles for
+interactivity, but any other bundles could be used instead. This
+example launcher project has the following directory structure:</p>
 
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
 <pre>launcher/
    lib/
-      org.apache.felix.main-2.0.0.jar
+      org.apache.felix.main-3.0.0.jar
    bundle/
-      org.apache.felix.shell-1.4.0.jar
-      org.apache.felix.shell.tui-1.4.0.jar
+      org.apache.felix.gogo.command-0.6.0.jar
+      org.apache.felix.gogo.runtime-0.6.0.jar
+      org.apache.felix.gogo.shell-0.6.0.jar
    src/
       example/
          Main.java
@@ -454,10 +450,10 @@
 then it would be possible to use the framework JAR file instead of the
 main JAR file. The <tt>bundle/</tt> directory contains the shell
 service and textual shell interface bundles that will be used for
-interacting with the framework instance. Note: If you do not launch
-Felix with interactive bundles, it will appear as if the framework
+interacting with the framework instance. Note: If you do not launch the
+framework with interactive bundles, it will appear as if the framework
 instance is hung, but it is actually just sitting there waiting for
-someone to tell it to do something. The <tt>src/example/</tt> directory contains the following <tt>Main.java</tt> file, which is a very simplistic Felix launcher.</p>
+someone to tell it to do something. The <tt>src/example/</tt> directory contains the following <tt>Main.java</tt> file, which is a very simplistic framework launcher.</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java"><span class="code-keyword">package</span> example;
@@ -473,8 +469,8 @@
     <span class="code-keyword">public</span> <span class="code-keyword">static</span> void main(<span class="code-object">String</span>[] argv) <span class="code-keyword">throws</span> Exception
     {
         <span class="code-comment">// Print welcome banner.
-</span>        <span class="code-object">System</span>.out.println(<span class="code-quote">"\nWelcome to Felix."</span>);
-        <span class="code-object">System</span>.out.println(<span class="code-quote">"=================\n"</span>);
+</span>        <span class="code-object">System</span>.out.println(<span class="code-quote">"\nWelcome to My Launcher"</span>);
+        <span class="code-object">System</span>.out.println(<span class="code-quote">"======================\n"</span>);
 
         <span class="code-keyword">try</span>
         {
@@ -552,8 +548,8 @@
 auto-deploy directory and any referenced from the auto-install/start
 properties. Since we are using an empty configuration, the auto-deploy
 directory is the <tt>bundle</tt> directory in the current directory
-and there are no auto properties. Therefore, in this case, the two
-shell bundles will be installed.</p>
+and there are no auto properties. Therefore, in this case, the shell
+bundles will be installed.</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">            m_fwk.start();
@@ -582,7 +578,7 @@
 <p>The following command compiles the launcher when run from the root directory of the launcher project:</p>
 
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
-<pre>javac -d . -classpath lib/org.apache.felix.main-2.0.0.jar src/example/Main.java
+<pre>javac -d . -classpath lib/org.apache.felix.main-3.0.0.jar src/example/Main.java
 </pre>
 </div></div>
 
@@ -592,7 +588,7 @@
 the root directory of the launcher project:</p>
 
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
-<pre>java -cp .:lib/org.apache.felix.main-2.0.0.jar example.Main
+<pre>java -cp .:lib/org.apache.felix.main-3.0.0.jar example.Main
 </pre>
 </div></div>
 
@@ -600,15 +596,15 @@
 
 <p><a name="ApacheFelixFrameworkLaunchingandEmbedding-embedding"></a></p>
 
-<h1><a name="ApacheFelixFrameworkLaunchingandEmbedding-EmbeddingFelix"></a>Embedding Felix</h1>
+<h1><a name="ApacheFelixFrameworkLaunchingandEmbedding-EmbeddingtheFelixFramework"></a>Embedding the Felix Framework</h1>
 
-<p>Embedding Felix into a host application is a simple way to provide a
-sophisticated extensibility mechanism (i.e., a plugin system) to the
-host application. Embedding Felix is very similar to launching Felix as
-described above, the main difference is that the host application
-typically wants to interact with the framework instance and/or
-installed bundles/services from the outside. This is fairly easy to
-achieve with Felix, but there are some subtle issues to understand.
+<p>Embedding the Felix framework into a host application is a simple
+way to provide a sophisticated extensibility mechanism (i.e., a plugin
+system) to the host application. Embedding the Felix framework is very
+similar to launching it as described above, the main difference is that
+the host application typically wants to interact with the framework
+instance and/or installed bundles/services from the outside. This is
+fairly easy to achieve, but there are some subtle issues to understand.
 This section presents the mechanisms for embedding Felix into a host
 application and the issues in doing so.</p>
 
@@ -616,13 +612,17 @@
 
 <h2><a name="ApacheFelixFrameworkLaunchingandEmbedding-Host/FelixInteraction"></a>Host/Felix Interaction</h2>
 
-<p>In the section on <a href="#ApacheFelixFrameworkLaunchingandEmbedding-launching">launching</a> Felix above, the <tt>Felix</tt> accepts a configuration property called <tt>felix.systembundle.activators</tt>,
+<p>In the section on <a href="#ApacheFelixFrameworkLaunchingandEmbedding-launching">launching</a> the framework above, the <tt>Felix</tt> class accepts a configuration property called <tt>felix.systembundle.activators</tt>,
 which is a list of bundle activator instances. These bundle activator
 instances provide a convenient way for host applications to interact
-with the Felix framework. The ability offered by these activators can
-also be accomplished by invoking <tt>init()</tt> on the framework instance and the using <tt>getBundleContext()</tt> to get the System Bundle's context, but it can be more convenient to use an activator instance.</p>
+with the Felix framework.</p>
 
-<p>Each activator instance passed into the constructor effectively becomes part of the System Bundle. This means that the <tt>start()</tt>/<tt>stop()</tt> methods of each activator instance in the list gets invoked when the System Bundle's activator <tt>start()</tt>/<tt>stop()</tt> methods gets invoked, respectively. Each activator instance will be given the System Bundle's <tt>BundleContext</tt> object so that they can interact with the framework. Consider following snippet of a bundle activator:</p>
+<div class="panelMacro"><table class="warningMacro"><colgroup><col width="24"><col></colgroup><tbody><tr><td valign="top"><img src="apache-felix-framework-launching-and-embedding_files/forbidden.gif" alt="" align="absmiddle" border="0" height="16" width="16"></td><td><b>WARNING</b><br>The <tt>felix.systembundle.activators</tt>
+configuration property is specific to the Felix framework
+implementation. If you want your code to work with other framework
+implementations, you should call <tt>init()</tt> on the framework instance and use <tt>getBundleContext()</tt> directly. Otherwise, the approach would be very similar.</td></tr></tbody></table></div>
+
+<p>Each activator instance passed into the constructor effectively becomes part of the system bundle. This means that the <tt>start()</tt>/<tt>stop()</tt> methods of each activator instance in the list gets invoked when the system bundle's activator <tt>start()</tt>/<tt>stop()</tt> methods gets invoked, respectively. Each activator instance will be given the system bundle's <tt>BundleContext</tt> object so that they can interact with the framework. Consider following snippet of a bundle activator:</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java"><span class="code-keyword">public</span> class HostActivator <span class="code-keyword">implements</span> BundleActivator
@@ -651,9 +651,9 @@
 </pre>
 </div></div>
 
-<p>Given the above bundle activator, it is now possible to embed Felix
-into a host application and interact with it as the following snippet
-illustrates:</p>
+<p>Given the above bundle activator, it is now possible to embed the
+Felix framework into a host application and interact with it as the
+following snippet illustrates:</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java"><span class="code-keyword">public</span> class HostApplication
@@ -664,7 +664,7 @@
     <span class="code-keyword">public</span> HostApplication()
     {
         <span class="code-comment">// Create a configuration property map.
-</span>        Map configMap = <span class="code-keyword">new</span> HashMap();
+</span>        Map config = <span class="code-keyword">new</span> HashMap();
         <span class="code-comment">// Create host activator;
 </span>        m_activator = <span class="code-keyword">new</span> HostActivator();
         List list = <span class="code-keyword">new</span> ArrayList();
@@ -675,7 +675,7 @@
         {
             <span class="code-comment">// Now create an instance of the framework with
 </span>            <span class="code-comment">// our configuration properties.
-</span>            m_felix = <span class="code-keyword">new</span> Felix(configMap);
+</span>            m_felix = <span class="code-keyword">new</span> Felix(config);
             <span class="code-comment">// Now start Felix instance.
 </span>            m_felix.start();
         }
@@ -698,14 +698,14 @@
         <span class="code-comment">// Shut down the felix framework when stopping the
 </span>        <span class="code-comment">// host application.
 </span>        m_felix.stop();
-        m_felix.waitForStop();
+        m_felix.waitForStop(0);
     }
 }
 </pre>
 </div></div>
 
 <p>Notice how the <tt>HostApplication.getInstalledBundles()</tt> method
-uses its activator instance to get access to the System Bundle's
+uses its activator instance to get access to the system bundle's
 context in order to interact with the embedded Felix framework
 instance. This approach provides the foundation for all interaction
 between the host application and the embedded framework instance.</p>
@@ -732,7 +732,7 @@
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java"><span class="code-keyword">package</span> host.service.lookup;
 
-<span class="code-keyword">public</span> class Lookup
+<span class="code-keyword">public</span> <span class="code-keyword">interface</span> Lookup
 {
     <span class="code-keyword">public</span> <span class="code-object">Object</span> lookup(<span class="code-object">String</span> name);
 }
@@ -855,7 +855,7 @@
         <span class="code-comment">// Shut down the felix framework when stopping the
 </span>        <span class="code-comment">// host application.
 </span>        m_felix.stop();
-        m_felix.waitForStop();
+        m_felix.waitForStop(0);
     }
 }
 </pre>
@@ -1016,11 +1016,10 @@
 
     <span class="code-keyword">public</span> void shutdownApplication()
     {
-    {
         <span class="code-comment">// Shut down the felix framework when stopping the
 </span>        <span class="code-comment">// host application.
 </span>        m_felix.stop();
-        m_felix.waitForStop();
+        m_felix.waitForStop(0);
     }
 }
 </pre>
@@ -1047,7 +1046,7 @@
 
 <h3><a name="ApacheFelixFrameworkLaunchingandEmbedding-OtherApproaches"></a>Other Approaches</h3>
 
-<p>The <a href="http://code.google.com/p/transloader/" rel="nofollow">Transloader</a> project is another attempt at dealing with issues of classes loaded from different class loaders and may be of interest.</p>
+<p>The <a href="http://code.google.com/p/transloader/" class="external-link" rel="nofollow">Transloader</a> project is another attempt at dealing with issues of classes loaded from different class loaders and may be of interest.</p>
 
 <p><a name="ApacheFelixFrameworkLaunchingandEmbedding-caveat"></a></p>
 
@@ -1062,6 +1061,6 @@
 
 <h2><a name="ApacheFelixFrameworkLaunchingandEmbedding-Feedback"></a>Feedback</h2>
 
-<p>Subscribe to the Felix users mailing list by sending a message to <a href="mailto:users-subscribe@felix.apache.org" rel="nofollow">users-subscribe@felix.apache.org</a>; after subscribing, email questions or feedback to <a href="mailto:users@felix.apache.org" rel="nofollow">users@felix.apache.org</a>.</p>
+<p>Subscribe to the Felix users mailing list by sending a message to <a href="mailto:users-subscribe@felix.apache.org" class="external-link" rel="nofollow">users-subscribe@felix.apache.org</a>; after subscribing, email questions or feedback to <a href="mailto:users@felix.apache.org" class="external-link" rel="nofollow">users@felix.apache.org</a>.</p>
     </div>
-  </body></html>
+  </body></html>
\ No newline at end of file
diff --git a/main/doc/apache-felix-framework-launching-and-embedding_files/button.html b/main/doc/apache-felix-framework-launching-and-embedding_files/button.html
index 1a464ef..8503c58 100644
--- a/main/doc/apache-felix-framework-launching-and-embedding_files/button.html
+++ b/main/doc/apache-felix-framework-launching-and-embedding_files/button.html
@@ -1,5 +1,5 @@
 <html><head>
 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><!-- ads start -->
-</head><body><a href="http://www.us.apachecon.com/c/acus2009/" target="_blank"><img src="button_data/2009-usa-125x125.png" title="ApacheCon US 2009" border="0" height="125" width="125"></a>
+</head><body><a href="http://www.us.apachecon.com/" target="_blank"><img src="button_data/2010-na-125x125.png" title="ApacheCon NA 2010" border="0" height="125" width="125"></a>
 <!-- ads end -->
 </body></html>
\ No newline at end of file
diff --git a/main/doc/apache-felix-framework-launching-and-embedding_files/button_data/2010-na-125x125.png b/main/doc/apache-felix-framework-launching-and-embedding_files/button_data/2010-na-125x125.png
new file mode 100644
index 0000000..90bd87b
--- /dev/null
+++ b/main/doc/apache-felix-framework-launching-and-embedding_files/button_data/2010-na-125x125.png
Binary files differ
diff --git a/main/doc/apache-felix-framework-usage-documentation.html b/main/doc/apache-felix-framework-usage-documentation.html
index b3b725c..c10d7d0 100644
--- a/main/doc/apache-felix-framework-usage-documentation.html
+++ b/main/doc/apache-felix-framework-usage-documentation.html
@@ -12,18 +12,19 @@
 <ul>
 	<li><a href="http://felix.apache.org/site/news.html" title="news">news</a></li>
 	<li><a href="http://felix.apache.org/site/license.html" title="license">license</a></li>
-	<li><a href="http://felix.apache.org/site/downloads.cgi" rel="nofollow">downloads</a></li>
+	<li><a href="http://felix.apache.org/site/downloads.cgi" class="external-link" rel="nofollow">downloads</a></li>
 	<li><a href="http://felix.apache.org/site/documentation.html" title="documentation">documentation</a></li>
 	<li><a href="http://felix.apache.org/site/mailinglists.html" title="mailinglists">mailing lists</a></li>
 	<li><a href="http://felix.apache.org/site/contributing.html" title="Contributing">contributing</a></li>
-	<li><a href="http://www.apache.org/" rel="nofollow">asf</a></li>
-	<li><a href="http://www.apache.org/foundation/sponsorship.html" rel="nofollow">sponsorship</a></li>
-	<li><a href="http://www.apache.org/foundation/thanks.html" rel="nofollow">sponsors</a>
+	<li><a href="http://www.apache.org/" class="external-link" rel="nofollow">asf</a></li>
+	<li><a href="http://www.apache.org/foundation/sponsorship.html" class="external-link" rel="nofollow">sponsorship</a></li>
+	<li><a href="http://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">sponsors</a>
 <!-- ApacheCon Ad -->
 <iframe src="apache-felix-framework-usage-documentation_files/button.html" style="border-width: 0pt; float: left;" frameborder="0" height="135" scrolling="no" width="135"></iframe>
 <p style="height: 100px;">
 <!-- ApacheCon Ad -->
-</p></li></ul> </div>
+</p></li></ul>
+    </div>
     <div class="main">
 <h1><a name="ApacheFelixFrameworkUsageDocumentation-ApacheFelixFrameworkUsageDocumentation"></a>Apache Felix Framework Usage Documentation</h1>
 
@@ -65,14 +66,14 @@
 </pre>
 </div></div>
 
-<p>The framework launcher starts the framework and installs a bundles contained in the <tt>bundle</tt>
+<p>The framework launcher starts the framework and installs and starts all bundles contained in the <tt>bundle</tt>
 directory of the current directory. By default, the bundle directory
-contains a simple text-based shell to interact with the framework.
-Bundles installed into the framework are copied into a bundle cache
-directory for subsequent executions. By default, the framework creates
-a cache directory, called <tt>felix-cache</tt>, in your current working directory; this behavior is configurable, see the <a href="http://felix.apache.org/site/apache-felix-framework-bundle-cache.html" title="Apache Felix Framework Bundle Cache">Apache Felix Framework Bundle Cache</a> document for more details.</p>
-
-<p>If you want to start the framework using a different bundle cache directory, you can do so like this:</p>
+contains shell-related bundles providing a textual user interface to
+interact with the framework. Bundles installed into the framework are
+copied into a bundle cache directory for subsequent executions. By
+default, the framework creates a cache directory, called <tt>felix-cache</tt>,
+in your current working directory. If you want to start the framework
+using a different bundle cache directory, you can do so like this:</p>
 
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
 <pre>java -jar bin/felix.jar &lt;cache-path&gt;
@@ -83,23 +84,23 @@
 bundle cache. If you specify a relative cache path, then it will be
 treated as relative to the current working directory.</p>
 
-<div class="panelMacro"><table class="infoMacro"><colgroup><col width="24"><col></colgroup><tbody><tr><td valign="top"><img src="apache-felix-framework-usage-documentation_files/information.gif" alt="" align="absmiddle" border="0" height="16" width="16"></td><td><b>Useful Information</b><br><p>Previous
+<div class="panelMacro"><table class="infoMacro"><colgroup><col width="24"><col></colgroup><tbody><tr><td valign="top"><img src="apache-felix-framework-usage-documentation_files/information.gif" alt="" align="absmiddle" border="0" height="16" width="16"></td><td><b>Useful Information</b><br>Previous
 versions of the framework prompted for a profile name when executed.
 The profile name was used to create a directory inside <tt>.felix/</tt>
 in the user home directory. This approach allowed users to have
 different sets of bundles for different purposes, e.g., testing,
 production, etc. If this behavior is still desired, it is very easy to
-mimic. Modify <tt>conf/config.properties</tt> to include "<tt>felix.cache.rootdir=${user.home}/.felix</tt>". Now, if you start Felix with something like "<tt>java -jar bin/felix.jar foo</tt>", it will use "<tt>${user.home}/.felix/foo/</tt>" as the bundle cache directory, where "<tt>${user.home</tt>}" is automatically substituted with the appropriate system property by the launcher.</p></td></tr></tbody></table></div>
+mimic. Modify <tt>conf/config.properties</tt> to include "<tt>felix.cache.rootdir=${user.home}/.felix</tt>". Now, if you start Felix with something like "<tt>java -jar bin/felix.jar foo</tt>", it will use "<tt>${user.home}/.felix/foo/</tt>" as the bundle cache directory, where "<tt>${user.home</tt>}" is automatically substituted with the appropriate system property by the launcher.</td></tr></tbody></table></div>
 
 <p><a name="ApacheFelixFrameworkUsageDocumentation-frameworkshell"></a></p>
 
 <h2><a name="ApacheFelixFrameworkUsageDocumentation-FrameworkShell"></a>Framework Shell</h2>
 
-<p>The main way to interact with the framework is via its shell. Felix'
-shell is implemented as an OSGi service that, be default, uses a simple
-text-based user interface. After starting the framework, type <tt>help</tt> into the shell to see the list of the available commands and <tt>help &lt;command-name&gt;</tt> to get help for a specific command.</p>
+<p>The main way to interact with the framework is via the supplied Apache Felix Gogo shell. After starting the framework, type <tt>help</tt> into the shell to see the list of the available commands and <tt>help &lt;command-name&gt;</tt> to get help for a specific command.</p>
 
-<p>To install bundles, use the <tt>install</tt> command, which is described in more detail in the next <a href="#ApacheFelixFrameworkUsageDocumentation-installingbundles">sub-section</a>. To view all currently installed bundles, use the <tt>ps</tt> command. To stop the framework type <tt>stop 0</tt>
+<div class="panelMacro"><table class="infoMacro"><colgroup><col width="24"><col></colgroup><tbody><tr><td valign="top"><img src="apache-felix-framework-usage-documentation_files/information.gif" alt="" align="absmiddle" border="0" height="16" width="16"></td><td><b>Useful Information</b><br>In Gogo, command names are made up of two parts: <tt>&lt;scope&gt;:&lt;name&gt;</tt>. This is similar to a fully qualified class name in Java and is used to avoid naming collisions. If the <tt>&lt;name&gt;</tt> portion of the command is unique, then you only need to type it. If not, then you must either type the full <tt>&lt;scope&gt;:&lt;name&gt;</tt> or arrange the scope search path accordingly.</td></tr></tbody></table></div>
+
+<p>To install bundles, use the <tt>felix:install</tt> command, which is described in more detail in the next <a href="#ApacheFelixFrameworkUsageDocumentation-installingbundles">sub-section</a>. To list installed bundles, use the <tt>felix:lb</tt> command. To stop the framework type <tt>stop 0</tt>
 to stop the System Bundle; any installed bundles will automatically be
 reloaded (and potentially restarted) the next time you launch with the
 associated cache.</p>
@@ -115,57 +116,59 @@
 implement a service that other bundles can use; bundles can only use
 functionality from other bundles through shared services and packages.</p>
 
-<p>The Felix framework is packaged with three bundles, which are located in the <tt>bundle/</tt>
-directory of the framework installation directory. There are bundles
-for the Felix shell service, a text-based shell service user interface,
-and a bundle repository service. In addition to these bundles, the
-bundle repository services provides access to other bundles for easy
-installation. The bundle repository service provides a shell command,
-named <tt>obr</tt>, to access available bundles; refer to the <a href="http://felix.apache.org/site/apache-felix-osgi-bundle-repository.html" title="Apache Felix OSGi Bundle Repository">Apache Felix OSGi Bundle Repository</a> for more information.</p>
+<p>The Felix framework distribution comes with three bundles, which are located in the <tt>bundle/</tt>
+directory of the framework distribution installation directory. These
+bundles include the Gogo Runtime (core command processing
+functionality), Gogo Shell (text-based shell user interface), Gogo
+Command (basic set of commands), and Bundle Repository (a bundle
+repository service). In addition to these bundles, the bundle
+repository provides access to other bundles for easy installation. The
+bundle repository service provides a set of shell commands in the <tt>obr:*</tt> scope; refer to the <a href="http://felix.apache.org/site/apache-felix-osgi-bundle-repository.html" title="Apache Felix OSGi Bundle Repository">Apache Felix OSGi Bundle Repository</a> for more information.</p>
 
 <p>Before installing any bundles, it is important to understand how
 bundles are manually deployed into the framework. Bundles are deployed
 in two stages; first they are installed, then they are started. To
-install a bundle use the <tt>install</tt> shell command followed by a bundle URL. For example, to install a <tt>bundle.jar</tt> bundle you type (assuming you have started Felix from its installation directory):</p>
+install a bundle use the <tt>felix:install</tt> shell command followed by a bundle URL. For example, to install a <tt>bundle.jar</tt> bundle you type:</p>
 
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
-<pre>install file:/path/to/bundle/bundle.jar
+<pre>felix:install file:/path/to/bundle/bundle.jar
 </pre>
 </div></div>
 
-<p>Once a bundle is installed, it can then be started by using the <tt>start</tt> command and the bundle identifier of the desired bundle. The <tt>ps</tt>
-shell command is used to list all installed bundles and to obtain the
-bundle's identifier. The following Felix shell session capture
-illustrates how to start the <tt>bundle.jar</tt> bundle:</p>
+<p>Once a bundle is installed, it can then be started by using the <tt>felix:start</tt> command and the bundle identifier of the desired bundle. The <tt>felix:lb</tt>
+command is used to list installed bundles and to obtain the bundle's
+identifier. The following Felix shell session illustrates how to start
+the <tt>bundle.jar</tt> bundle:</p>
 
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
-<pre>-&gt; install [file:bundle/simple]
--&gt; ps
+<pre>g! install file:/path/to/bundle/bundle.jar
+g! lb
 START LEVEL 1
-   ID   State         Level  Name
-[   0] [Active     ] [    0] System Bundle (2.0.0)
-[   1] [Active     ] [    1] Shell Service (1.4.0)
-[   2] [Active     ] [    1] Shell TUI (1.4.0)
-[   3] [Active     ] [    1] Bundle Repository (1.4.0)
-[   4] [Installed  ] [    1] Bundle Example (1.0.0)
--&gt; start 4
-Hello from Bundle 4.
--&gt;
+   ID|State      |Level|Name
+    0|Active     |    0|System Bundle (3.0.0)
+    1|Active     |    1|Apache Felix Bundle Repository (1.6.2)
+    2|Active     |    1|Apache Felix Gogo Command (0.6.0)
+    3|Active     |    1|Apache Felix Gogo Runtime (0.6.0)
+    4|Active     |    1|Apache Felix Gogo Shell (0.6.0)
+    5|Installed  |    1|Example Bundle (1.0.0)
+g! start 5
+Hello from Bundle 5.
+g!
 </pre>
 </div></div>
 
-<p>The <tt>stop</tt> command is used to stop a bundle and the <tt>uninstall</tt> command is used to remove a bundle from the bundle cache. As an alternative to using the <tt>install</tt> and <tt>start</tt> commands explicitly, it is also possible to install and start a bundle in one step by using the <tt>start</tt> command with a bundle URL.</p>
+<p>The <tt>felix:stop</tt> command is used to stop a bundle and the <tt>felix:uninstall</tt> command is used to remove a bundle from the bundle cache. As an alternative to using the <tt>felix:install</tt> and <tt>felix:start</tt> commands explicitly, it is also possible to install and start a bundle in one step by using the <tt>felix:start</tt> command with a bundle URL.</p>
 
-<p>Bundles can be updated using the <tt>update</tt> command. The update
-command allows you to specify an URL from which to retrieve the updated
-bundle, but if one is not specified it will try to update the bundle
-from the bundle's <tt>Bundle-UpdateLocation</tt> manifest attribute, if present, or the bundle's original location URL.</p>
+<p>Bundles can be updated using the <tt>felix:update</tt> command. The
+update command allows you to specify an URL from which to retrieve the
+updated bundle, but if one is not specified it will try to update the
+bundle from the bundle's <tt>Bundle-UpdateLocation</tt> manifest attribute, if present, or the bundle's original location URL.</p>
 
-<p><b>Important:</b> When you <tt>update</tt> or <tt>uninstall</tt> a
-bundle, the changes appear to take effect immediately, but in reality
-the changes are only partially enacted. If a bundle is updated or
+<div class="panelMacro"><table class="infoMacro"><colgroup><col width="24"><col></colgroup><tbody><tr><td valign="top"><img src="apache-felix-framework-usage-documentation_files/information.gif" alt="" align="absmiddle" border="0" height="16" width="16"></td><td><b>Useful Information</b><br>When you use <tt>felix:update</tt> or <tt>felix:uninstall</tt>,
+the changes appear to take effect immediately, but in reality the
+changes are only partially enacted. If a bundle is updated or
 uninstalled and it was exporting packages, these packages are not
-removed until the framework is refreshed using the <tt>PackageAdmin</tt> service. The Felix shell offers a convenient <tt>refresh</tt> command for this purpose.</p>
+removed until the framework is refreshed using the <tt>PackageAdmin</tt> service. The Felix shell offers a convenient <tt>refresh</tt> command for this purpose. This is the correct behavior as defined by the OSGi specification.</td></tr></tbody></table></div>
 
 <p>For an introduction to writing bundles and services, refer to the Felix bundle tutorial.</p>
 
@@ -174,9 +177,9 @@
 <h3><a name="ApacheFelixFrameworkUsageDocumentation-WebProxyIssueswhenInstallingBundles"></a>Web Proxy Issues when Installing Bundles</h3>
 
 <p>If you use a proxy for Web access, then you may run into difficulty
-using the Felix shell to install bundles from a remote URL. To remedy
-this situation, certain system properties must be set to make Felix
-work with your proxy. These properties are:</p>
+using the Gogo shell to install bundles from remote URLs. To remedy
+this situation, certain system properties must be set to make the
+framework work with your proxy. These properties are:</p>
 
 <ul>
 	<li><tt>http.proxyHost</tt> - the name of the proxy host.</li>
@@ -206,20 +209,20 @@
 </div></div>
 
 <p>Specifying an auto-deploy directory replaces the default directory,
-it does not augment it. The default deployment actions performed on the
-bundles in the auto-deploy directory are: install, update, and start.
-Both the location of the auto-deploy directory and the deployment
-actions performed can be controlled by the following configuration
-properties, respectively:</p>
+it does not augment it. The framework distribution is configured to
+install and start bundles in the auto-deploy directory. Both the
+location of the auto-deploy directory and the deployment actions
+performed can be controlled by the following configuration properties,
+respectively:</p>
 
 <ul>
 	<li><tt>felix.auto.deploy.dir</tt> - Specifies the auto-deploy directory from which bundles are automatically deploy at framework startup. The default is the <tt>bundle/</tt> directory of the current directory.</li>
 	<li><tt>felix.auto.deploy.action</tt>
-- Specifies the auto-deploy actions to be found on bundle JAR files
-found in the auto-deploy directory. The possible actions are <tt>install</tt>, <tt>update</tt>, <tt>start</tt>, and <tt>uninstall</tt>.
+- Specifies the auto-deploy actions to be performed on the bundle JAR
+files found in the auto-deploy directory. The possible actions are <tt>install</tt>, <tt>update</tt>, <tt>start</tt>, and <tt>uninstall</tt>.
 If no actions are specified, then the auto-deploy directory is not
-processed. There is no default value for this property, but the default
-<tt>config.properties</tt> file installed with the Felix framework sets the value to <tt>install</tt>, <tt>update</tt>, and <tt>start</tt>.</li>
+processed (i.e., it is disabled). There is no default value for this
+property, but the default <tt>config.properties</tt> file installed with the Felix framework distribution sets the value to: <tt>install, start</tt></li>
 </ul>
 
 
@@ -233,9 +236,7 @@
 properties to alter their default behavior. The framework can only be
 configured by passing properties into its constructor, but the launcher
 provides a mechanism to configure the framework via a property file.
-The launcher The Felix framework uses properties to configure certain
-aspects of its behavior. The framework launcher reads configuration
-properties from <tt>conf/config.properties</tt>. This file uses standard Java property file syntax.</p>
+The framework launcher reads configuration properties from <tt>conf/config.properties</tt>. This file uses standard Java property file syntax.</p>
 
 <p>The launcher also supports setting system properties via the <tt>conf/system.properties</tt>
 file. This file is purely for convenience when you need to repeatedly
@@ -244,7 +245,7 @@
 framework configuration properties found in the system properties into
 the framework configuration map, also for your convenience.</p>
 
-<p>It is possible to specify a different locations for these property files for the system properties file by using the <tt>felix.config.properties</tt> and <tt>felix.system.properties</tt> system properties when executing the framework. For example:</p>
+<p>It is possible to specify different locations for these property files using the <tt>felix.config.properties</tt> and <tt>felix.system.properties</tt> system properties when executing the framework. For example:</p>
 
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
 <pre>java -Dfelix.config.properties=file:/home/rickhall/config.properties -jar bin/felix.jar
@@ -253,13 +254,13 @@
 
 <p>Configuration and system properties are accessible at run time via <tt>BundleContext.getProperty()</tt>, but configuration properties override system properties.</p>
 
-<p>The following configuration properties are specifically for the launcher:</p>
+<p>The following configuration properties are for the launcher:</p>
 
 <ul>
 	<li><tt>felix.auto.deploy.dir</tt> - Specifies the auto-deploy directory from which bundles are automatically deploy at framework startup. The default is the <tt>bundle/</tt> directory of the current directory.</li>
 	<li><tt>felix.auto.deploy.action</tt>
-- Specifies the auto-deploy actions to be found on bundle JAR files
-found in the auto-deploy directory. The possible actions are <tt>install</tt>, <tt>update</tt>, <tt>start</tt>, and <tt>uninstall</tt>. An undefined or blank value is equivalent to disabling auto-deploy processing.</li>
+- Specifies a comma-delimited list of actions to be performed on bundle
+JAR files found in the auto-deploy directory. The possible actions are <tt>install</tt>, <tt>update</tt>, <tt>start</tt>, and <tt>uninstall</tt>. An undefined or blank value is equivalent to disabling auto-deploy processing.</li>
 	<li><tt>felix.auto.install.&lt;n&gt;</tt> - Space-delimited list of bundle URLs to automatically install when Felix is started, where <tt>&lt;n&gt;</tt> is the start level into which the bundle will be installed (e.g., <tt>felix.auto.install.2</tt>).</li>
 	<li><tt>felix.auto.start.&lt;n&gt;</tt> - Space-delimited list of bundle URLs to automatically install and start when Felix is started, where <tt>&lt;n&gt;</tt> is the start level into which the bundle will be installed (e.g., <tt>felix.auto.start.2</tt>).</li>
 	<li><tt>felix.shutdown.hook</tt>
@@ -268,7 +269,7 @@
 </ul>
 
 
-<p>The following configuration properties are specifically for the framework (properties starting with "<tt>felix</tt>" are specific to Felix, while those starting with "<tt>org.osgi</tt>" are standard OSGi properties):</p>
+<p>The following configuration properties are for the framework (properties starting with "<tt>felix</tt>" are specific to Felix, while those starting with "<tt>org.osgi</tt>" are standard OSGi properties):</p>
 
 <ul>
 	<li><tt>org.osgi.framework.storage</tt> - Sets the directory to use as the bundle cache; by default bundle cache directory is <tt>felix-cache</tt>
@@ -276,7 +277,7 @@
 name. The directory name can be either absolute or relative. Relative
 directory names are relative to the current working directory. The
 specified directory will be created if it does not exist.</li>
-	<li><tt>felix.cache.rootdir</tt> - Sets the root directory to use to calculate the bundle cache directory for relative directory names. If <tt>org.osgi.framework.storage</tt>
+	<li><tt>felix.cache.rootdir</tt> - Sets the root directory used to calculate the bundle cache directory for relative directory names. If <tt>org.osgi.framework.storage</tt>
 is set to a relative name, by default it is relative to the current
 working directory. If this property is set, then it will be calculated
 as being relative to the specified root directory.</li>
@@ -287,18 +288,19 @@
 of the internal buffer of the disk cache for performance reasons.</li>
 	<li><tt>org.osgi.framework.system.packages</tt>
 - Specifies a comma-delimited list of packages that should be exported
-via the System Bundle from the parent class loader. The framework will
-set this to a reasonable default. If the value is specified, it
+via the System Bundle from the framework class loader. The framework
+will set this to a reasonable default. If the value is specified, it
 replaces any default value.</li>
 	<li><tt>org.osgi.framework.system.packages.extra</tt>
 - Specifies a comma-delimited list of packages that should be exported
-via the System Bundle from the parent class loader in addition to the
-packages in <tt>org.osgi.framework.system.packages</tt>. The default value is empty. If a value is specified, it is appended to the list of default or specified packages in <tt>org.osgi.framework.system.packages</tt>.</li>
+via the System Bundle from the framework class loader in addition to
+the packages in <tt>org.osgi.framework.system.packages</tt>. The default value is empty. If a value is specified, it is appended to the list of default or specified packages in <tt>org.osgi.framework.system.packages</tt>.</li>
 	<li><tt>org.osgi.framework.bootdelegation</tt>
 - Specifies a comma-delimited list of packages that should be made
 implicitly available to all bundles from the parent class loader. It is
 recommended not to use this property since it breaks modularity. The
 default value is empty.</li>
+	<li><tt>org.osgi.framework.bundle.parent</tt> - Specifies which class loader is used for boot delegation. Possible values are: <tt>boot</tt> for the boot class loader, <tt>app</tt> for the application class loader, <tt>ext</tt> for the extension class loader, and <tt>framework</tt> for the framework's class loader. The default is <tt>boot</tt>.</li>
 	<li><tt>felix.bootdelegation.implicit</tt>
 - Specifies whether the framework should try to guess when to
 implicitly boot delegate to ease integration with external code. The
@@ -322,17 +324,16 @@
 	<li><tt>org.osgi.framework.startlevel.beginning</tt> - The initial start level of the framework once it starts execution; the default value is 1.</li>
 	<li><tt>felix.startlevel.bundle</tt> - The default start level for newly installed bundles; the default value is 1.</li>
 	<li><tt>felix.service.urlhandlers</tt> - Flag to indicate whether to activate the URL Handlers service for the framework instance; the default value is "<tt>true</tt>". Activating the URL Handlers service will result in the <tt>URL.setURLStreamHandlerFactory()</tt> and <tt>URLConnection.setContentHandlerFactory()</tt> being called.</li>
-	<li><tt>felix.fragment.validation</tt> - Determines if installing unsupported fragment bundles throws an exception or logs a warning. Possible values are "<tt>exception</tt>" or "<tt>warning</tt>". The default value is "<tt>exception</tt>".</li>
 </ul>
 
 
-<p>The Felix framework installation contains a default <tt>conf/config.properties</tt> file for automatically starting the shell-related bundles.</p>
+<p>The Felix framework distribution contains a default <tt>conf/config.properties</tt>.</p>
 
 <p><a name="ApacheFelixFrameworkUsageDocumentation-migrating"></a></p>
 
 <h3><a name="ApacheFelixFrameworkUsageDocumentation-MigratingfromEarlierVersions"></a>Migrating from Earlier Versions</h3>
 
-<p>Apache Felix Framework <tt>1.4.0</tt> introduced some configuration property changes. This section describes the differences from older versions of the framework.</p>
+<p>Apache Felix Framework <tt>2.0.0</tt> introduced some configuration property changes. This section describes the differences from older versions of the framework.</p>
 
 <ul>
 	<li><b>Removed</b>
@@ -340,7 +341,8 @@
 		<li><tt>felix.embedded.execution</tt> - No longer needed, since the framework now never calls <tt>System.exit()</tt>; the creator of the framework is now always responsible for exiting the VM.</li>
 		<li><tt>felix.strict.osgi</tt> - No longer needed, since all non-specification features have been removed.</li>
 		<li><tt>felix.cache.dir</tt> - No longer needed, since Felix no longer uses bundle cache profiles for saving sets of bundles.</li>
-		<li><tt>felix.cache.profile</tt> - No longer needed, since Felix no longer uses bundle cache profiles for saving sets of bundles.</li>
+		<li><tt>felix.cache.profile</tt> - No longer needed, since the framework no longer uses bundle cache profiles for saving sets of bundles.</li>
+		<li><tt>felix.fragment.validation</tt> - No longer needed, since the framework supports fragments.</li>
 	</ul>
 	</li>
 	<li><b>Renamed</b>
@@ -354,7 +356,6 @@
 		<li><tt>org.osgi.framework.system.packages.extra</tt> - New property, as described above, added to align with standard framework API.</li>
 		<li><tt>org.osgi.framework.storage.clean</tt> - New property, as described above, added to align with standard framework API.</li>
 		<li><tt>felix.cache.rootdir</tt> - Introduced as a result of removing bundle profiles to help resolve relative bundle cache directories.</li>
-		<li><tt>felix.fragment.validation</tt> - Introduced to control fragment validation, since the default behavior introduced in <tt>1.2.0</tt> of throwing an exception for fragments using unsupported features was causing issues for some users.</li>
 	</ul>
 	</li>
 </ul>
@@ -366,26 +367,26 @@
 
 <p><a name="ApacheFelixFrameworkUsageDocumentation-propertysubstitution"></a></p>
 
-<h3><a name="ApacheFelixFrameworkUsageDocumentation-SystemPropertySubstituion"></a>System Property Substituion</h3>
+<h3><a name="ApacheFelixFrameworkUsageDocumentation-SystemPropertySubstitution"></a>System Property Substitution</h3>
 
 <p>It is possible to use system properties to specify the values of properties in the <tt>conf/config.properties</tt> file. This is achieved through system property substitution, which is instigated by using <tt>${&lt;property&gt;</tt>} syntax, where <tt>&lt;property&gt;</tt>
-is the name of a system property to substitute. When such a property
-value is retrieved by a bundle, the system property value will be
-substituted into the bundle property value as appropriate. It is
-possible to have nested system property substitution, in which case the
-inner-most property is substituted first, then the next inner most,
-until reaching the outer most.</p>
+is the name of a system property to substitute. When the properties
+file is read, any such property values are substituted as appropriate.
+It is possible to have nested system property substitution, in which
+case the inner-most property is substituted first, then the next inner
+most, until reaching the outer most.</p>
 
 <p><a name="ApacheFelixFrameworkUsageDocumentation-configuringbundles"></a></p>
 
 <h2><a name="ApacheFelixFrameworkUsageDocumentation-ConfiguringBundles"></a>Configuring Bundles</h2>
 
-<p>Some bundles use properties to configure certain aspects of their behavior. As an example, the default URL for the <tt>cd</tt> command of the shell service can be specified using the property <tt>felix.shell.baseurl</tt>.
-It is a good idea, when implementing bundles, to parameterize them with
-properties where appropriate. To learn about the configuration options
-for specific bundles, refer to the documentation that accompanies them.</p>
+<p>Some bundles use properties to configure certain aspects of their
+behavior. It is a good idea, when implementing bundles, to parameterize
+them with properties where appropriate. To learn about the
+configuration options for specific bundles, refer to the documentation
+that accompanies them.</p>
 
-<p>Bundle properties are also defined in the <tt>conf/config.properties</tt> property file. Any property placed in this file will be accessible via <tt>BundleContext.getProperty()</tt>
+<p>Bundle properties may also be defined in the <tt>conf/config.properties</tt> property file. Any property placed in this file will be accessible via <tt>BundleContext.getProperty()</tt>
 at run time. The property file uses the standard Java property file
 syntax (i.e., attribute-value pairs). For information on changing the
 default location of this file, refer to the section on <a href="#ApacheFelixFrameworkUsageDocumentation-configuringframework">configuring Felix</a>.</p>
@@ -394,6 +395,6 @@
 
 <h2><a name="ApacheFelixFrameworkUsageDocumentation-Feedback"></a>Feedback</h2>
 
-<p>Subscribe to the Felix users mailing list by sending a message to <a href="mailto:users-subscribe@felix.apache.org" rel="nofollow">users-subscribe@felix.apache.org</a>; after subscribing, email questions or feedback to <a href="mailto:users@felix.apache.org" rel="nofollow">users@felix.apache.org</a>.</p>
+<p>Subscribe to the Felix users mailing list by sending a message to <a href="mailto:users-subscribe@felix.apache.org" class="external-link" rel="nofollow">users-subscribe@felix.apache.org</a>; after subscribing, email questions or feedback to <a href="mailto:users@felix.apache.org" class="external-link" rel="nofollow">users@felix.apache.org</a>.</p>
     </div>
-  </body></html>
+  </body></html>
\ No newline at end of file
diff --git a/main/doc/apache-felix-framework-usage-documentation_files/button.html b/main/doc/apache-felix-framework-usage-documentation_files/button.html
index 1a464ef..8503c58 100644
--- a/main/doc/apache-felix-framework-usage-documentation_files/button.html
+++ b/main/doc/apache-felix-framework-usage-documentation_files/button.html
@@ -1,5 +1,5 @@
 <html><head>
 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><!-- ads start -->
-</head><body><a href="http://www.us.apachecon.com/c/acus2009/" target="_blank"><img src="button_data/2009-usa-125x125.png" title="ApacheCon US 2009" border="0" height="125" width="125"></a>
+</head><body><a href="http://www.us.apachecon.com/" target="_blank"><img src="button_data/2010-na-125x125.png" title="ApacheCon NA 2010" border="0" height="125" width="125"></a>
 <!-- ads end -->
 </body></html>
\ No newline at end of file
diff --git a/main/doc/apache-felix-framework-usage-documentation_files/button_data/2010-na-125x125.png b/main/doc/apache-felix-framework-usage-documentation_files/button_data/2010-na-125x125.png
new file mode 100644
index 0000000..90bd87b
--- /dev/null
+++ b/main/doc/apache-felix-framework-usage-documentation_files/button_data/2010-na-125x125.png
Binary files differ
diff --git a/main/doc/changelog.txt b/main/doc/changelog.txt
index 92e05be..4b05768 100644
--- a/main/doc/changelog.txt
+++ b/main/doc/changelog.txt
@@ -1,3 +1,17 @@
+Changes from 2.0.5 to 3.0.0
+---------------------------
+
+** Improvement
+    * Update to latest framework version 3.0.0
+    * [FELIX-1797] - Customizable Framework startup message
+    * [FELIX-2336] - Variable substitution in configuration files should ignore mismatched delimiters
+
+Changes from 2.0.4 to 2.0.5
+---------------------------
+
+** Improvement
+    * Update to latest framework version 2.0.5
+
 Changes from 2.0.3 to 2.0.4
 ---------------------------
 
diff --git a/main/pom.xml b/main/pom.xml
index 501edc1..b3340ef 100644
--- a/main/pom.xml
+++ b/main/pom.xml
@@ -38,10 +38,10 @@
   <properties>
     <log.level>4</log.level>
     <dollar>$</dollar>
-    <framework.version>2.1.0-SNAPSHOT</framework.version>
-    <gogo.runtime.version>0.5.0-SNAPSHOT</gogo.runtime.version>
-    <gogo.shell.version>0.5.0-SNAPSHOT</gogo.shell.version>
-    <gogo.command.version>0.5.0-SNAPSHOT</gogo.command.version>
+    <framework.version>3.0.0</framework.version>
+    <gogo.runtime.version>0.6.0</gogo.runtime.version>
+    <gogo.shell.version>0.6.0</gogo.shell.version>
+    <gogo.command.version>0.6.0</gogo.command.version>
     <obr.version>1.6.2</obr.version>
   </properties>
   <profiles>
