diff --git a/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ConfigurationListener.java b/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ConfigurationListener.java
index 494de1c..bb54353 100644
--- a/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ConfigurationListener.java
+++ b/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/ConfigurationListener.java
@@ -73,7 +73,10 @@
 	@Override
 	public boolean close() {
 		try (Syncro open = syncro.open()) {
-			if (_listenerService != null) {
+			if (_listenerService == null) {
+				return true;
+			}
+			else {
 				_listenerService.unregister();
 				_listenerService = null;
 			}
@@ -131,6 +134,10 @@
 	@Override
 	public boolean open() {
 		try (Syncro open = syncro.open()) {
+			if (_listenerService != null) {
+				return true;
+			}
+
 			if (containerState.bundleContext() == null) {
 				// this bundle was already removed
 				return false;
diff --git a/cdi-itests/owb-itest.bndrun b/cdi-itests/owb-itest.bndrun
index d219c54..20c12d2 100644
--- a/cdi-itests/owb-itest.bndrun
+++ b/cdi-itests/owb-itest.bndrun
@@ -65,5 +65,7 @@
 	org.apache.xbean.finder-shaded;version='[4.13.0,4.13.1)',\
 	org.osgi.service.cdi;version='[1.0.0,1.0.1)',\
 	org.osgi.service.jaxrs;version='[1.0.0,1.0.1)',\
+	org.osgi.test.common;version='[1.0.0,1.0.1)',\
+	org.osgi.test.junit4;version='[1.0.0,1.0.1)',\
 	org.osgi.util.function;version='[1.1.0,1.1.1)',\
 	org.osgi.util.promise;version='[1.1.0,1.1.1)'
diff --git a/cdi-itests/pom.xml b/cdi-itests/pom.xml
index c59681a..d186a37 100644
--- a/cdi-itests/pom.xml
+++ b/cdi-itests/pom.xml
@@ -141,6 +141,11 @@
 			<groupId>org.osgi</groupId>
 			<artifactId>osgi.core</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>org.osgi</groupId>
+			<artifactId>org.osgi.test.junit4</artifactId>
+			<version>1.0.0-SNAPSHOT</version>
+		</dependency>
 
 		<!-- RUNTIME dependencies not found in BOMs -->
 		<dependency>
@@ -291,4 +296,15 @@
 			</plugin>
 		</plugins>
 	</build>
+
+	<repositories>
+		<repository>
+			<id>Sonatype OSSR</id>
+			<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
+			<layout>default</layout>
+			<releases>
+				<enabled>false</enabled>
+			</releases>
+		</repository>
+	</repositories>
 </project>
diff --git a/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/DisableComponentTests.java b/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/DisableComponentTests.java
index e260dd9..0f019c2 100644
--- a/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/DisableComponentTests.java
+++ b/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/DisableComponentTests.java
@@ -14,7 +14,8 @@
 
 package org.apache.aries.cdi.test.cases;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 
 import java.util.Dictionary;
 import java.util.Hashtable;
@@ -22,26 +23,26 @@
 import org.apache.aries.cdi.test.interfaces.Pojo;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.osgi.framework.Bundle;
 import org.osgi.service.cm.Configuration;
 import org.osgi.service.cm.ConfigurationAdmin;
-import org.osgi.util.tracker.ServiceTracker;
+import org.osgi.test.junit4.service.ServiceUseRule;
 
-public class DisableComponentTests extends AbstractTestCase {
+public class DisableComponentTests	 extends AbstractTestCase {
+
+	@Rule
+	public ServiceUseRule<ConfigurationAdmin> car = new ServiceUseRule.Builder<ConfigurationAdmin>(ConfigurationAdmin.class).build();
 
 	@Before
 	@Override
 	public void setUp() throws Exception {
-		adminTracker = new ServiceTracker<>(bundleContext, ConfigurationAdmin.class, null);
-		adminTracker.open();
-		configurationAdmin = adminTracker.getService();
 	}
 
 	@After
 	@Override
 	public void tearDown() throws Exception {
-		adminTracker.close();
 	}
 
 	@Test
@@ -61,7 +62,7 @@
 			Configuration configurationA = null;
 
 			try {
-				configurationA = configurationAdmin.getConfiguration("osgi.cdi.cdi.itests.tb8", "?");
+				configurationA = car.getService().getConfiguration("osgi.cdi.cdi.itests.tb8", "?");
 
 				Dictionary<String, Object> p1 = new Hashtable<>();
 				p1.put("cdi-itests.tb8.enabled", false);
@@ -120,7 +121,7 @@
 			Configuration configurationA = null;
 
 			try {
-				configurationA = configurationAdmin.getConfiguration("osgi.cdi.cdi.itests.tb8", "?");
+				configurationA = car.getService().getConfiguration("osgi.cdi.cdi.itests.tb8", "?");
 
 				Dictionary<String, Object> p1 = new Hashtable<>();
 				p1.put("singleComponentBean.enabled", false);
@@ -162,7 +163,4 @@
 		}
 	}
 
-	private ServiceTracker<ConfigurationAdmin, ConfigurationAdmin> adminTracker;
-	private ConfigurationAdmin configurationAdmin;
-
 }
diff --git a/cdi-itests/weld-itest.bndrun b/cdi-itests/weld-itest.bndrun
index 2f42ebe..136b9c0 100644
--- a/cdi-itests/weld-itest.bndrun
+++ b/cdi-itests/weld-itest.bndrun
@@ -73,5 +73,7 @@
 	org.jboss.weld.osgi-bundle;version='[3.0.5,3.0.6)',\
 	org.osgi.service.cdi;version='[1.0.0,1.0.1)',\
 	org.osgi.service.jaxrs;version='[1.0.0,1.0.1)',\
+	org.osgi.test.common;version='[1.0.0,1.0.1)',\
+	org.osgi.test.junit4;version='[1.0.0,1.0.1)',\
 	org.osgi.util.function;version='[1.1.0,1.1.1)',\
 	org.osgi.util.promise;version='[1.1.0,1.1.1)'
