diff --git a/main.distribution/doc/apache-felix-framework-usage-documentation.html b/main.distribution/doc/apache-felix-framework-usage-documentation.html
index b3b725c..c10d7d0 100644
--- a/main.distribution/doc/apache-felix-framework-usage-documentation.html
+++ b/main.distribution/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
