diff --git a/bundles/org.eclipse.equinox.ds.tests/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.ds.tests/META-INF/MANIFEST.MF
index a0ef71b..743ba47 100644
--- a/bundles/org.eclipse.equinox.ds.tests/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.ds.tests/META-INF/MANIFEST.MF
@@ -3,12 +3,11 @@
 Bundle-Name: Declarative Services Tests
 Bundle-Category: test
 Bundle-SymbolicName: org.eclipse.equinox.ds.tests
-Bundle-Version: 1.5.200.qualifier
+Bundle-Version: 1.5.300.qualifier
 Bundle-Activator: org.eclipse.equinox.ds.tests.DSTestsActivator
 Bundle-ActivationPolicy: lazy
 Require-Bundle: org.junit
 Import-Package: 
- org.apache.felix.scr;version="1.6.0",
  org.eclipse.osgi.service.urlconversion;version="1.0.0",
  org.osgi.framework;version="1.3.0",
  org.osgi.service.cm;version="1.2.0",
diff --git a/bundles/org.eclipse.equinox.ds.tests/pom.xml b/bundles/org.eclipse.equinox.ds.tests/pom.xml
index cfb98f0..78ca38a 100644
--- a/bundles/org.eclipse.equinox.ds.tests/pom.xml
+++ b/bundles/org.eclipse.equinox.ds.tests/pom.xml
@@ -19,6 +19,6 @@
   </parent>
   <groupId>org.eclipse.equinox</groupId>
   <artifactId>org.eclipse.equinox.ds.tests</artifactId>
-  <version>1.5.200-SNAPSHOT</version>
+  <version>1.5.300-SNAPSHOT</version>
   <packaging>eclipse-test-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.equinox.ds.tests/src/org/eclipse/equinox/ds/tests/DSTestsActivator.java b/bundles/org.eclipse.equinox.ds.tests/src/org/eclipse/equinox/ds/tests/DSTestsActivator.java
index 87fe2c7..11c5820 100644
--- a/bundles/org.eclipse.equinox.ds.tests/src/org/eclipse/equinox/ds/tests/DSTestsActivator.java
+++ b/bundles/org.eclipse.equinox.ds.tests/src/org/eclipse/equinox/ds/tests/DSTestsActivator.java
@@ -40,7 +40,7 @@
 	}
 	
 	public static void activateSCR() {
-		activateBundle("org.eclipse.equinox.ds");
+		activateBundle("org.apache.felix.scr");
 		activateBundle("org.eclipse.equinox.cm");
 		activateBundle("org.eclipse.equinox.log");
 		activateBundle("org.eclipse.equinox.util");
diff --git a/bundles/org.eclipse.equinox.ds.tests/src/org/eclipse/equinox/ds/tests/tbc/DSTest.java b/bundles/org.eclipse.equinox.ds.tests/src/org/eclipse/equinox/ds/tests/tbc/DSTest.java
index ea34566..c104494 100644
--- a/bundles/org.eclipse.equinox.ds.tests/src/org/eclipse/equinox/ds/tests/tbc/DSTest.java
+++ b/bundles/org.eclipse.equinox.ds.tests/src/org/eclipse/equinox/ds/tests/tbc/DSTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 1997, 2013 by ProSyst Software GmbH and others.
+ * Copyright (c) 1997, 2018 by ProSyst Software GmbH and others.
  * http://www.prosyst.com
  *
  * This program and the accompanying materials
@@ -35,9 +35,6 @@
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
-import org.apache.felix.scr.Component;
-import org.apache.felix.scr.Reference;
-import org.apache.felix.scr.ScrService;
 import org.eclipse.equinox.ds.tests.BundleInstaller;
 import org.eclipse.equinox.ds.tests.DSTestsActivator;
 import org.junit.Before;
@@ -2903,33 +2900,6 @@
     }
   }
 
-  @SuppressWarnings("deprecation")
-@Test
-  public void testScrService() throws BundleException {
-    Bundle tb27 = installBundle("tb27");
-    ServiceReference<ScrService> ref = getContext().getServiceReference(ScrService.class);
-    ScrService scrService = ref == null ? null : getContext().getService(ref);
-    assertNotNull("No ScrService.", scrService);
-    try {
-      tb27.start();
-      waitBundleStart();
-      Component[] tb27Comps = scrService.getComponents(tb27);
-      assertNotNull("No tb26 components.", tb27Comps);
-      assertEquals("Wrong number of components.", 1, tb27Comps.length);
-      Component test1 = tb27Comps[0];
-      assertEquals("Wrong name.", "test1", test1.getName());
-      Reference[] refs = test1.getReferences();
-      assertNotNull("No references.", refs);
-      assertEquals("Wrong number of references.", 1, refs.length);
-      assertEquals("Wrong ref name.", "log", refs[0].getName());
-      ServiceReference<?>[] services = refs[0].getServiceReferences();
-      assertNotNull("No service references.", services);
-      assertEquals("Wrong number of service refs.", 1, services.length);
-    } finally {
-      uninstallBundle(tb27);
-    }
-  }
-
   /**
    * Asserts that two lists contain equal elements (the order doesn't matter).
    */
