diff --git a/karaf/deployer/spring/pom.xml b/karaf/deployer/spring/pom.xml
index 2a16e20..275b400 100644
--- a/karaf/deployer/spring/pom.xml
+++ b/karaf/deployer/spring/pom.xml
@@ -22,16 +22,16 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.servicemix.kernel</groupId>
+        <groupId>org.apache.felix.karaf</groupId>
         <artifactId>kernel</artifactId>
         <version>1.2.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.servicemix.kernel.deployer</groupId>
-    <artifactId>org.apache.servicemix.kernel.deployer.spring</artifactId>
+    <groupId>org.apache.felix.karaf.deployer</groupId>
+    <artifactId>org.apache.felix.karaf.deployer.spring</artifactId>
     <packaging>bundle</packaging>
     <version>1.2.0-SNAPSHOT</version>
-    <name>Apache ServiceMix Kernel :: Spring Deployer</name>
+    <name>Apache Felix Karaf :: Spring Deployer</name>
 
     <description>This deployer transforms a plain spring xml file to a deployable bundle</description>
 
@@ -46,8 +46,8 @@
             <artifactId>spring-osgi-core</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.servicemix.kernel.deployer</groupId>
-            <artifactId>org.apache.servicemix.kernel.deployer.filemonitor</artifactId>
+            <groupId>org.apache.felix.karaf.deployer</groupId>
+            <artifactId>org.apache.felix.karaf.deployer.filemonitor</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.servicemix.bundles</groupId>
@@ -63,7 +63,7 @@
                 <configuration>
                     <instructions>
                         <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
-                        <Private-Package>org.apache.servicemix.kernel.deployer.spring</Private-Package>
+                        <Private-Package>org.apache.felix.karaf.deployer.spring</Private-Package>
                         <Spring-Context>*;publish-context:=false;create-asynchronously:=false</Spring-Context>
                     </instructions>
                 </configuration>
@@ -71,4 +71,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/karaf/deployer/spring/src/main/java/org/apache/servicemix/kernel/deployer/spring/SpringDeploymentListener.java b/karaf/deployer/spring/src/main/java/org/apache/felix/karaf/deployer/spring/SpringDeploymentListener.java
similarity index 95%
rename from karaf/deployer/spring/src/main/java/org/apache/servicemix/kernel/deployer/spring/SpringDeploymentListener.java
rename to karaf/deployer/spring/src/main/java/org/apache/felix/karaf/deployer/spring/SpringDeploymentListener.java
index 11c394f..7551f99 100644
--- a/karaf/deployer/spring/src/main/java/org/apache/servicemix/kernel/deployer/spring/SpringDeploymentListener.java
+++ b/karaf/deployer/spring/src/main/java/org/apache/felix/karaf/deployer/spring/SpringDeploymentListener.java
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.deployer.spring;
+package org.apache.felix.karaf.deployer.spring;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -27,7 +27,7 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.servicemix.kernel.deployer.filemonitor.DeploymentListener;
+import org.apache.felix.karaf.deployer.filemonitor.DeploymentListener;
 
 /**
  * A deployment listener that listens for spring xml applications
diff --git a/karaf/deployer/spring/src/main/java/org/apache/servicemix/kernel/deployer/spring/SpringTransformer.java b/karaf/deployer/spring/src/main/java/org/apache/felix/karaf/deployer/spring/SpringTransformer.java
similarity index 99%
rename from karaf/deployer/spring/src/main/java/org/apache/servicemix/kernel/deployer/spring/SpringTransformer.java
rename to karaf/deployer/spring/src/main/java/org/apache/felix/karaf/deployer/spring/SpringTransformer.java
index 91d8b2a..fe5ec5e 100644
--- a/karaf/deployer/spring/src/main/java/org/apache/servicemix/kernel/deployer/spring/SpringTransformer.java
+++ b/karaf/deployer/spring/src/main/java/org/apache/felix/karaf/deployer/spring/SpringTransformer.java
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.deployer.spring;
+package org.apache.felix.karaf.deployer.spring;
 
 import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
diff --git a/karaf/deployer/spring/src/main/java/org/apache/servicemix/kernel/deployer/spring/SpringURLHandler.java b/karaf/deployer/spring/src/main/java/org/apache/felix/karaf/deployer/spring/SpringURLHandler.java
similarity index 98%
rename from karaf/deployer/spring/src/main/java/org/apache/servicemix/kernel/deployer/spring/SpringURLHandler.java
rename to karaf/deployer/spring/src/main/java/org/apache/felix/karaf/deployer/spring/SpringURLHandler.java
index fce7913..943f0fe 100644
--- a/karaf/deployer/spring/src/main/java/org/apache/servicemix/kernel/deployer/spring/SpringURLHandler.java
+++ b/karaf/deployer/spring/src/main/java/org/apache/felix/karaf/deployer/spring/SpringURLHandler.java
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.deployer.spring;
+package org.apache.felix.karaf.deployer.spring;
 
 import java.io.File;
 import java.io.FileInputStream;
diff --git a/karaf/deployer/spring/src/main/resources/META-INF/spring/spring-deployer.xml b/karaf/deployer/spring/src/main/resources/META-INF/spring/spring-deployer.xml
index af2921a..6ece1f2 100644
--- a/karaf/deployer/spring/src/main/resources/META-INF/spring/spring-deployer.xml
+++ b/karaf/deployer/spring/src/main/resources/META-INF/spring/spring-deployer.xml
@@ -29,17 +29,17 @@
   http://www.springframework.org/schema/osgi
   http://www.springframework.org/schema/osgi/spring-osgi.xsd">
 
-    <bean id="springDeploymentListener" class="org.apache.servicemix.kernel.deployer.spring.SpringDeploymentListener">
+    <bean id="springDeploymentListener" class="org.apache.felix.karaf.deployer.spring.SpringDeploymentListener">
 
     </bean>
 
     <osgi:service ref="springDeploymentListener">
         <osgi:interfaces>
-            <value>org.apache.servicemix.kernel.deployer.filemonitor.DeploymentListener</value>
+            <value>org.apache.felix.karaf.deployer.filemonitor.DeploymentListener</value>
         </osgi:interfaces>
     </osgi:service>
 
-    <bean id="springHandler" class="org.apache.servicemix.kernel.deployer.spring.SpringURLHandler" />
+    <bean id="springHandler" class="org.apache.felix.karaf.deployer.spring.SpringURLHandler" />
 
     <osgi:service ref="springHandler" interface="org.osgi.service.url.URLStreamHandlerService">
     	<osgi:service-properties>
@@ -47,4 +47,4 @@
         </osgi:service-properties>
     </osgi:service>
 
-</beans>
\ No newline at end of file
+</beans>
diff --git a/karaf/deployer/spring/src/main/resources/org/apache/servicemix/kernel/deployer/spring/extract.xsl b/karaf/deployer/spring/src/main/resources/org/apache/felix/karaf/deployer/spring/extract.xsl
similarity index 100%
rename from karaf/deployer/spring/src/main/resources/org/apache/servicemix/kernel/deployer/spring/extract.xsl
rename to karaf/deployer/spring/src/main/resources/org/apache/felix/karaf/deployer/spring/extract.xsl
diff --git a/karaf/deployer/spring/src/test/java/org/apache/servicemix/kernel/deployer/spring/SpringDeploymentListenerTest.java b/karaf/deployer/spring/src/test/java/org/apache/felix/karaf/deployer/spring/SpringDeploymentListenerTest.java
similarity index 92%
rename from karaf/deployer/spring/src/test/java/org/apache/servicemix/kernel/deployer/spring/SpringDeploymentListenerTest.java
rename to karaf/deployer/spring/src/test/java/org/apache/felix/karaf/deployer/spring/SpringDeploymentListenerTest.java
index 9a70dd0..7921282 100644
--- a/karaf/deployer/spring/src/test/java/org/apache/servicemix/kernel/deployer/spring/SpringDeploymentListenerTest.java
+++ b/karaf/deployer/spring/src/test/java/org/apache/felix/karaf/deployer/spring/SpringDeploymentListenerTest.java
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicemix.kernel.deployer.spring;
+package org.apache.felix.karaf.deployer.spring;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -29,8 +29,8 @@
 import javax.xml.transform.dom.DOMSource;
 
 import junit.framework.TestCase;
-import org.apache.servicemix.kernel.deployer.spring.SpringDeploymentListener;
-import org.apache.servicemix.kernel.deployer.spring.SpringTransformer;
+import org.apache.felix.karaf.deployer.spring.SpringDeploymentListener;
+import org.apache.felix.karaf.deployer.spring.SpringTransformer;
 
 public class SpringDeploymentListenerTest extends TestCase {
 
@@ -41,7 +41,7 @@
         assertNotNull(pkgs);
         assertEquals(2, pkgs.size());
         Iterator<String> it = pkgs.iterator();
-        assertEquals("org.apache.servicemix.kernel.deployer.spring", it.next());
+        assertEquals("org.apache.felix.karaf.deployer.spring", it.next());
         assertEquals("org.osgi.service.url", it.next());
     }
 
diff --git a/karaf/deployer/spring/src/test/resources/test.xml b/karaf/deployer/spring/src/test/resources/test.xml
index 31dca21..b47596e 100644
--- a/karaf/deployer/spring/src/test/resources/test.xml
+++ b/karaf/deployer/spring/src/test/resources/test.xml
@@ -34,17 +34,17 @@
         Header=value
     </manifest>
 
-    <bean id="springDeploymentListener" class="org.apache.servicemix.kernel.deployer.spring.SpringDeploymentListener">
+    <bean id="springDeploymentListener" class="org.apache.felix.karaf.deployer.spring.SpringDeploymentListener">
 
     </bean>
 
     <osgi:service ref="springDeploymentListener">
         <osgi:interfaces>
-            <value>org.apache.servicemix.kernel.deployer.filemonitor.DeploymentListener</value>
+            <value>org.apache.felix.karaf.deployer.filemonitor.DeploymentListener</value>
         </osgi:interfaces>
     </osgi:service>
 
-    <bean id="springHandler" class="org.apache.servicemix.kernel.deployer.spring.SpringURLHandler" />
+    <bean id="springHandler" class="org.apache.felix.karaf.deployer.spring.SpringURLHandler" />
 
     <osgi:service ref="springHandler" interface="org.osgi.service.url.URLStreamHandlerService">
     	<osgi:service-properties>
@@ -52,4 +52,4 @@
         </osgi:service-properties>
     </osgi:service>
 
-</beans>
\ No newline at end of file
+</beans>
