diff --git a/scr/src/test/java/org/apache/felix/scr/integration/Felix3680_2Test.java b/scr/src/test/java/org/apache/felix/scr/integration/Felix3680_2Test.java
index 57a5c58..4ff99f9 100644
--- a/scr/src/test/java/org/apache/felix/scr/integration/Felix3680_2Test.java
+++ b/scr/src/test/java/org/apache/felix/scr/integration/Felix3680_2Test.java
@@ -41,8 +41,9 @@
         //        paxRunnerVmOption = DEBUG_VM_OPTION;
         descriptorFile = "/integration_test_FELIX_3880_2.xml";
         
+        restrictedLogging = true;
         // Comment this for displaying debug messages
-        DS_LOGLEVEL = "debug";
+        DS_LOGLEVEL = "warn";
     }
 
     @Inject
@@ -69,6 +70,8 @@
         main.enable();
 
         delay( 30 );
+        main.disable();
+        delay(); //async deactivate
         for ( Iterator it = log.foundWarnings().iterator(); it.hasNext(); )
         {
             String message = ( String ) it.next();
diff --git a/scr/src/test/java/org/apache/felix/scr/integration/components/felix3680_2/Main.java b/scr/src/test/java/org/apache/felix/scr/integration/components/felix3680_2/Main.java
index 0c2646d..57533a1 100644
--- a/scr/src/test/java/org/apache/felix/scr/integration/components/felix3680_2/Main.java
+++ b/scr/src/test/java/org/apache/felix/scr/integration/components/felix3680_2/Main.java
@@ -47,6 +47,8 @@
     volatile ConcurrentHashMap<Class, ServiceRegistration> m_registrations = new ConcurrentHashMap<Class, ServiceRegistration>();
     volatile Exception _bindStackTrace;
 
+    private volatile boolean running = true;
+
 
     /**
      * Helper used to randomly enable or disable a list of components.
@@ -189,19 +191,22 @@
 
     void start( ComponentContext ctx )
     {
-        m_logService.log( LogService.LOG_WARNING, "Main.start" );
         m_ctx = ctx;
         m_bctx = ctx.getBundleContext();
         m_ctx.getBundleContext().registerService( Executor.class.getName(), m_exec, null );
         new Thread( this ).start();
     }
 
+    void stop()
+    {
+        running = false;
+    }
+
 
     public void run()
     {
-        m_logService.log( LogService.LOG_WARNING, "Main.run" );
         int loop = 0;
-        while ( true )
+        while ( running )
         {
             m_enabledLatch = new CountDownLatch( 11 ); // 10 for registrations of B,C,D,E,F,G,H,I,J,K + 1 for Main.bindA
             m_disabledLatch = new CountDownLatch( 11 ); // 10 for unregistrations of B,C,D,E,F,G,H,I,J,K + 1 for Main.unbindA
@@ -239,10 +244,10 @@
             }
 
             ++loop;
-            //            if ( loop % 100 == 0 )
-            //            {
-            m_logService.log( LogService.LOG_WARNING, "Performed " + loop + " tests." );
-            // }
+            if ( loop % 100 == 0 )
+            {
+                m_logService.log( LogService.LOG_WARNING, "Performed " + loop + " tests." );
+            }
         }
     }
 
diff --git a/scr/src/test/resources/integration_test_FELIX_3880_2.xml b/scr/src/test/resources/integration_test_FELIX_3880_2.xml
index f4e9d5e..a9f958a 100644
--- a/scr/src/test/resources/integration_test_FELIX_3880_2.xml
+++ b/scr/src/test/resources/integration_test_FELIX_3880_2.xml
@@ -12,7 +12,7 @@
 <components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
 	<scr:component xmlns:scr='http://www.osgi.org/xmlns/scr/v1.1.0'
 		enabled='false' name='org.apache.felix.scr.integration.components.felix3680_2.Main'
-		activate='start'>
+		activate='start' deactivate='stop'>
 		<implementation
 			class='org.apache.felix.scr.integration.components.felix3680_2.Main' />
 		<reference name='a'
