diff --git a/karaf/features/core/pom.xml b/karaf/features/core/pom.xml
index 6c13f24..9abb41d 100644
--- a/karaf/features/core/pom.xml
+++ b/karaf/features/core/pom.xml
@@ -52,13 +52,13 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.console</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.console</artifactId>
         </dependency>
 
         <dependency>
-            <groupId>org.apache.felix.karaf.gshell</groupId>
-            <artifactId>org.apache.felix.karaf.gshell.obr</artifactId>
+            <groupId>org.apache.felix.karaf.shell</groupId>
+            <artifactId>org.apache.felix.karaf.shell.obr</artifactId>
         </dependency>
 
         <dependency>
@@ -97,7 +97,7 @@
                             javax.management.loading,
                             org.osgi.service.command,
                             org.apache.felix.gogo.commands,
-                            org.apache.felix.karaf.gshell.console,
+                            org.apache.felix.karaf.shell.console,
                             *
                         </Import-Package>
                         <Private-Package>org.apache.felix.karaf.features.internal</Private-Package>
diff --git a/karaf/features/core/src/test/java/org/apache/felix/karaf/features/FeaturesServiceTest.java b/karaf/features/core/src/test/java/org/apache/felix/karaf/features/FeaturesServiceTest.java
index 430250d..f467447 100644
--- a/karaf/features/core/src/test/java/org/apache/felix/karaf/features/FeaturesServiceTest.java
+++ b/karaf/features/core/src/test/java/org/apache/felix/karaf/features/FeaturesServiceTest.java
@@ -36,13 +36,12 @@
 import org.osgi.framework.BundleContext;
 import org.osgi.service.prefs.Preferences;
 import org.osgi.service.prefs.PreferencesService;
-import org.springframework.context.ApplicationContext;
 
 public class FeaturesServiceTest extends TestCase {
 
     public void testInstallFeature() throws Exception {
 
-        String name = ApplicationContext.class.getName();
+        String name = Bundle.class.getName();
         name = name.replace(".", "/")  + ".class";
         name = getClass().getClassLoader().getResource(name).toString();
         name = name.substring("jar:".length(), name.indexOf('!'));
@@ -131,7 +130,7 @@
 
     public void testUninstallFeature() throws Exception {
     	
-        String name = ApplicationContext.class.getName();
+        String name = Bundle.class.getName();
         name = name.replace(".", "/")  + ".class";
         name = getClass().getClassLoader().getResource(name).toString();
         name = name.substring("jar:".length(), name.indexOf('!'));
@@ -274,7 +273,7 @@
     // Tests Add and Remove Repository
     public void testAddAndRemoveRepository() throws Exception {        
 
-    	String name = ApplicationContext.class.getName();
+    	String name = Bundle.class.getName();
         name = name.replace(".", "/")  + ".class";
         name = getClass().getClassLoader().getResource(name).toString();
         name = name.substring("jar:".length(), name.indexOf('!'));        
@@ -351,7 +350,7 @@
     // all features in a repo
     public void testInstallUninstallAllFeatures() throws Exception {        
 
-    	String name = ApplicationContext.class.getName();
+    	String name = Bundle.class.getName();
         name = name.replace(".", "/")  + ".class";
         name = getClass().getClassLoader().getResource(name).toString();
         name = name.substring("jar:".length(), name.indexOf('!'));        
@@ -555,7 +554,7 @@
     // Tests uninstall of features
     public void testInstallFeatureWithDependantFeatures() throws Exception {          
 
-    	String name = ApplicationContext.class.getName();
+    	String name = Bundle.class.getName();
         name = name.replace(".", "/")  + ".class";
         name = getClass().getClassLoader().getResource(name).toString();
         name = name.substring("jar:".length(), name.indexOf('!'));        
diff --git a/karaf/features/core/src/test/java/org/apache/felix/karaf/features/RepositoryTest.java b/karaf/features/core/src/test/java/org/apache/felix/karaf/features/RepositoryTest.java
index 737acaf..9718e13 100644
--- a/karaf/features/core/src/test/java/org/apache/felix/karaf/features/RepositoryTest.java
+++ b/karaf/features/core/src/test/java/org/apache/felix/karaf/features/RepositoryTest.java
@@ -62,7 +62,7 @@
     }
     
     public void testShowWrongUriInException() throws Exception {
-        String uri = "src/test/resources/org/apache/felix/karaf/gshell/features/repo1.xml";
+        String uri = "src/test/resources/org/apache/felix/karaf/shell/features/repo1.xml";
         RepositoryImpl r = new RepositoryImpl(new URI(uri));
         try {
             r.load();
