diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 2fba737..1d6301a 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -38,6 +38,10 @@
 ** Bug
     * [SMX4KNL-70] - Bundles in /system folder should take precedence over local Maven repository
     * [SMX4KNL-79] - When starting the kernel, a log entry states "Can not install feature ''"
+    * [SMX4KNL-80] - "features list" output has a "version" column but no infos
+    * [SMX4KNL-81] - The wrapper feature can not be installed out of the box
+    * [SMX4KNL-82] - The installation state of a feature is not displayed correctly after a restart when using the "features list" command
+    * [SMX4KNL-83] - When using the wrapper command, ServiceMix Kernel does not start correctly
 
 ** Improvement
     * [SMX4KNL-69] - Add installation status for the 'features list' result.
diff --git a/assembly/pom.xml b/assembly/pom.xml
index 646763a..774ffd9 100644
--- a/assembly/pom.xml
+++ b/assembly/pom.xml
@@ -250,6 +250,28 @@
                 </executions>
             </plugin>
             <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>attach-artifacts</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>attach-artifact</goal>
+                        </goals>
+                        <configuration>
+                            <artifacts>
+                                <artifact>
+                                    <file>target/classes/features.xml</file>
+                                    <type>xml </type>
+                                    <classifier>features</classifier>
+                                </artifact>
+                            </artifacts>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-assembly-plugin</artifactId>
                 <version>2.2-beta-2</version>
diff --git a/assembly/src/main/descriptors/unix-bin.xml b/assembly/src/main/descriptors/unix-bin.xml
index 3224626..d769b8b 100644
--- a/assembly/src/main/descriptors/unix-bin.xml
+++ b/assembly/src/main/descriptors/unix-bin.xml
@@ -45,8 +45,8 @@
             <lineEnding>unix</lineEnding>
         </fileSet>        
         <fileSet>
-            <directory>target/classes</directory>
-            <outputDirectory>/</outputDirectory>
+            <directory>target/classes/etc</directory>
+            <outputDirectory>/etc/</outputDirectory>
             <lineEnding>unix</lineEnding>
         </fileSet>
 
@@ -94,6 +94,13 @@
             <fileMode>0644</fileMode>
             <lineEnding>unix</lineEnding>
         </file>
+        <file>
+            <source>${basedir}/target/classes/features.xml</source>
+            <outputDirectory>/system/org/apache/servicemix/kernel/apache-servicemix-kernel/${version}</outputDirectory>
+            <destName>apache-servicemix-kernel-${version}-features.xml</destName>
+            <fileMode>0644</fileMode>
+            <lineEnding>unix</lineEnding>
+        </file>
     </files>
 
     <dependencySets>
diff --git a/assembly/src/main/descriptors/windows-bin.xml b/assembly/src/main/descriptors/windows-bin.xml
index 08eff40..0e7dea1 100644
--- a/assembly/src/main/descriptors/windows-bin.xml
+++ b/assembly/src/main/descriptors/windows-bin.xml
@@ -46,8 +46,8 @@
           <lineEnding>dos</lineEnding>
       </fileSet>        
       <fileSet>
-          <directory>target/classes</directory>
-          <outputDirectory>/</outputDirectory>
+          <directory>target/classes/etc</directory>
+          <outputDirectory>/etc/</outputDirectory>
           <lineEnding>dos</lineEnding>
       </fileSet>
 
@@ -77,14 +77,21 @@
             <outputDirectory>/</outputDirectory>
             <destName>LICENSE.txt</destName>
             <fileMode>0644</fileMode>
-            <lineEnding>unix</lineEnding>
+            <lineEnding>dos</lineEnding>
         </file>
         <file>
             <source>${basedir}/target/maven-shared-archive-resources/META-INF/NOTICE</source>
             <outputDirectory>/</outputDirectory>
             <destName>NOTICE.txt</destName>
             <fileMode>0644</fileMode>
-            <lineEnding>unix</lineEnding>
+            <lineEnding>dos</lineEnding>
+        </file>
+        <file>
+            <source>${basedir}/target/classes/features.xml</source>
+            <outputDirectory>/system/org/apache/servicemix/kernel/apache-servicemix-kernel/${version}</outputDirectory>
+            <destName>apache-servicemix-kernel-${version}-features.xml</destName>
+            <fileMode>0644</fileMode>
+            <lineEnding>dos</lineEnding>
         </file>
     </files>
 
diff --git a/assembly/src/main/distribution/text/etc/org.apache.servicemix.features.cfg b/assembly/src/main/filtered-resources/etc/org.apache.servicemix.features.cfg
similarity index 91%
rename from assembly/src/main/distribution/text/etc/org.apache.servicemix.features.cfg
rename to assembly/src/main/filtered-resources/etc/org.apache.servicemix.features.cfg
index 695e2a7..2e22aec 100644
--- a/assembly/src/main/distribution/text/etc/org.apache.servicemix.features.cfg
+++ b/assembly/src/main/filtered-resources/etc/org.apache.servicemix.features.cfg
@@ -20,7 +20,7 @@
 #
 # Comma separated list of features repositories to register by default
 #
-featuresRepositories=http://svn.apache.org/repos/asf/servicemix/smx4/obr-repo/features.xml
+featuresRepositories=mvn:org.apache.servicemix.kernel/apache-servicemix-kernel/${version}/xml/features
 
 #
 # Comma separated list of features to install at startup
diff --git a/assembly/src/main/filtered-resources/features.xml b/assembly/src/main/filtered-resources/features.xml
new file mode 100644
index 0000000..986340c
--- /dev/null
+++ b/assembly/src/main/filtered-resources/features.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+      Licensed to the Apache Software Foundation (ASF) under one or more
+      contributor license agreements.  See the NOTICE file distributed with
+      this work for additional information regarding copyright ownership.
+      The ASF licenses this file to You under the Apache License, Version 2.0
+      (the "License"); you may not use this file except in compliance with
+      the License.  You may obtain a copy of the License at
+
+         http///www.apache.org/licenses/LICENSE-2.0
+
+      Unless required by applicable law or agreed to in writing, software
+      distributed under the License is distributed on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+      See the License for the specific language governing permissions and
+      limitations under the License.
+-->
+<features>
+    <feature name="wrapper">
+        <bundle>mvn:org.apache.servicemix.kernel.gshell/org.apache.servicemix.kernel.gshell.wrapper/${version}</bundle>
+    </feature>
+</features>
diff --git a/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/Feature.java b/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/Feature.java
index fce8581..5ef5823 100644
--- a/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/Feature.java
+++ b/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/Feature.java
@@ -32,6 +32,4 @@
 
     Map<String, Map<String, String>> getConfigurations();
 
-    boolean isInstalled();
-
 }
diff --git a/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/internal/FeatureImpl.java b/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/internal/FeatureImpl.java
index cf6e501..c29b0f0 100644
--- a/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/internal/FeatureImpl.java
+++ b/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/internal/FeatureImpl.java
@@ -32,8 +32,6 @@
     private List<String> dependencies = new ArrayList<String>();
     private List<String> bundles = new ArrayList<String>();
     private Map<String, Map<String,String>> configs = new HashMap<String, Map<String,String>>();
-    private boolean installed = false;
-    
     
     public FeatureImpl(String name) {
         this.name = name;
@@ -67,12 +65,4 @@
         configs.put(name, properties);
     }
 
-    public boolean isInstalled() {
-        return installed;
-    }
-
-    public void setInstalled(boolean installed) {
-        this.installed = installed;
-    }
-
 }
diff --git a/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/internal/FeaturesServiceImpl.java b/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/internal/FeaturesServiceImpl.java
index f864d78..6d53091 100644
--- a/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/internal/FeaturesServiceImpl.java
+++ b/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/internal/FeaturesServiceImpl.java
@@ -137,7 +137,7 @@
     }
 
     public void installFeature(String name) throws Exception {
-        FeatureImpl f = (FeatureImpl) getFeature(name);
+        Feature f = getFeature(name);
         if (f == null) {
             throw new Exception("No feature named '" + name + "' available");
         }
@@ -163,7 +163,6 @@
             bundles.add(b.getBundleId());
         }
         installed.put(name, bundles);
-        f.setInstalled(true);
         saveState();
     }
 
@@ -221,7 +220,7 @@
         Collection<String> features = new ArrayList<String>();
         for (Repository repo : repositories.values()) {
             for (Feature f : repo.getFeatures()) {
-            	String installStatus = f.isInstalled() ? "installed  " : "uninstalled";
+            	String installStatus = installed.containsKey(f.getName()) ? "installed  " : "uninstalled";
                 features.add("[" + installStatus + "] " + f.getName());
             }
         }
diff --git a/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/internal/commands/ListFeaturesCommand.java b/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/internal/commands/ListFeaturesCommand.java
index ceb8798..21fcf7b 100644
--- a/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/internal/commands/ListFeaturesCommand.java
+++ b/gshell/gshell-features/src/main/java/org/apache/servicemix/gshell/features/internal/commands/ListFeaturesCommand.java
@@ -32,7 +32,7 @@
             features = admin.listInstalledFeatures();
         } else {
         	// Print column headers.
-        	io.out.println("  State          Version       Name");
+        	io.out.println(" State        Name");
             features = admin.listFeatures();
         }
         if ((features != null) && (features.length > 0)) {
diff --git a/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/all/servicemix-wrapper.conf b/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/all/servicemix-wrapper.conf
index 4b85269..021872d 100644
--- a/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/all/servicemix-wrapper.conf
+++ b/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/all/servicemix-wrapper.conf
@@ -27,6 +27,7 @@
 wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
 wrapper.java.classpath.1=%SERVICEMIX_BASE%/lib/servicemix-wrapper.jar
 wrapper.java.classpath.2=%SERVICEMIX_HOME%/lib/servicemix.jar
+wrapper.java.classpath.3=%SERVICEMIX_HOME%/lib/servicemix-jaas-boot.jar
 wrapper.java.library.path.1=%SERVICEMIX_BASE%/lib/
 
 # Application Parameters.  Add parameters as needed starting from 1
