diff --git a/shell.remote/DEPENDENCIES b/shell.remote/DEPENDENCIES
new file mode 100644
index 0000000..8e8b3b2
--- /dev/null
+++ b/shell.remote/DEPENDENCIES
@@ -0,0 +1,20 @@
+Apache Felix Remote Shell
+Copyright 2010 The Apache Software Foundation
+
+This software was developed at the Apache Software Foundation
+(http://www.apache.org) and may have dependencies on other
+Apache software licensed under Apache License 2.0.
+
+I. Included Third-Party Software
+
+n/a
+
+II. Used Third-Party Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2009).
+Licensed under the Apache License 2.0.
+
+III. License Summary
+- Apache License 2.0
diff --git a/shell.remote/NOTICE b/shell.remote/NOTICE
index 720f11c..cb307ff 100644
--- a/shell.remote/NOTICE
+++ b/shell.remote/NOTICE
@@ -1,21 +1,6 @@
 Apache Felix Remote Shell
-Copyright 2008-2009 The Apache Software Foundation
-
-
-I. Included Software
+Copyright 2010 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
 Licensed under the Apache License 2.0.
-
-II. Used Software
-
-This product uses software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Licensed under the Apache License 2.0.
-
-III. License Summary
-- Apache License 2.0
\ No newline at end of file
diff --git a/shell.remote/doc/changelog.txt b/shell.remote/doc/changelog.txt
new file mode 100644
index 0000000..b04ce5f
--- /dev/null
+++ b/shell.remote/doc/changelog.txt
@@ -0,0 +1,9 @@
+Changes from 1.0.4 to 1.1.0
+---------------------------
+
+** Bug
+    * [FELIX-1057] - stopping bundle causes NPE
+    * [FELIX-2192] - Remote shell has incorrect bundle symbolic name
+
+** New Feature
+    * [FELIX-2544] - Modify shell.remote to work with Gogo too
diff --git a/shell.remote/pom.xml b/shell.remote/pom.xml
index 9aa49e5..bfc5c6b 100644
--- a/shell.remote/pom.xml
+++ b/shell.remote/pom.xml
@@ -19,8 +19,8 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <parent>
         <groupId>org.apache.felix</groupId>
-        <artifactId>felix</artifactId>
-        <version>1.0.4</version>
+        <artifactId>felix-parent</artifactId>
+        <version>1.2.1</version>
         <relativePath>../pom/pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
@@ -73,6 +73,7 @@
                         <DynamicImport-Package>
                             org.apache.felix.service.command,org.apache.felix.shell,org.osgi.service.log
                         </DynamicImport-Package>
+                        <Include-Resource>META-INF/LICENSE=LICENSE,META-INF/NOTICE=NOTICE,META-INF/DEPENDENCIES=DEPENDENCIES</Include-Resource>
                     </instructions>
                 </configuration>
             </plugin>
diff --git a/shell.remote/src/main/java/org/apache/felix/shell/remote/Listener.java b/shell.remote/src/main/java/org/apache/felix/shell/remote/Listener.java
index 8aba389..a67968f 100644
--- a/shell.remote/src/main/java/org/apache/felix/shell/remote/Listener.java
+++ b/shell.remote/src/main/java/org/apache/felix/shell/remote/Listener.java
@@ -60,6 +60,7 @@
         m_listenerThread = new Thread(m_acceptor, "telnetconsole.Listener");
         m_listenerThread.start();
     }//activate
+
     public ServiceMediator getServices()
     {
         return m_services;
