diff --git a/scr/src/main/java/org/apache/felix/scr/impl/Activator.java b/scr/src/main/java/org/apache/felix/scr/impl/Activator.java
index d9c4746..8cd8f70 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/Activator.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/Activator.java
@@ -291,7 +291,7 @@
             if ( e instanceof IllegalStateException && bundle.getState() != Bundle.ACTIVE )
             {
                 log(
-                    LogService.LOG_INFO,
+                    LogService.LOG_DEBUG,
                     m_context.getBundle(),
                     "Bundle "
                         + bundle.getSymbolicName()
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/BundleComponentActivator.java b/scr/src/main/java/org/apache/felix/scr/impl/BundleComponentActivator.java
index eb3344b..6988ed2 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/BundleComponentActivator.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/BundleComponentActivator.java
@@ -548,7 +548,7 @@
             }
             else
             {
-                log( LogService.LOG_INFO, "Component Actor Thread not running, calling synchronously", null, null );
+                log( LogService.LOG_DEBUG, "Component Actor Thread not running, calling synchronously", null, null );
                 try
                 {
                     synchronized ( this )
@@ -558,13 +558,13 @@
                 }
                 catch ( Throwable t )
                 {
-                    log( LogService.LOG_INFO, "Unexpected problem executing task", null, t );
+                    log( LogService.LOG_WARNING, "Unexpected problem executing task", null, t );
                 }
             }
         }
         else
         {
-            log( LogService.LOG_INFO, "BundleComponentActivator is not active; not scheduling {0}", new Object[]
+            log( LogService.LOG_WARNING, "BundleComponentActivator is not active; not scheduling {0}", new Object[]
                 { task }, null, null );
         }
     }
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/ComponentActorThread.java b/scr/src/main/java/org/apache/felix/scr/impl/ComponentActorThread.java
index 144e953..b4e2347 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/ComponentActorThread.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/ComponentActorThread.java
@@ -94,7 +94,7 @@
             // otherwise execute the task, log any issues
             try
             {
-                Activator.log( LogService.LOG_INFO, null, "Running task: " + task, null );
+                Activator.log( LogService.LOG_DEBUG, null, "Running task: " + task, null );
                 task.run();
             }
             catch ( Throwable t )
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/helper/BaseMethod.java b/scr/src/main/java/org/apache/felix/scr/impl/helper/BaseMethod.java
index e2029be..9492003 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/helper/BaseMethod.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/helper/BaseMethod.java
@@ -235,7 +235,7 @@
         }
         catch ( IllegalStateException ise )
         {
-            getComponentManager().log( LogService.LOG_INFO, ise.getMessage(), null );
+            getComponentManager().log( LogService.LOG_DEBUG, ise.getMessage(), null );
             return false;
         }
         catch ( IllegalAccessException ex )
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
index cac636b..ca48882 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
@@ -556,7 +556,7 @@
                         final Permission perm = new ServicePermission( services[i], ServicePermission.REGISTER );
                         if ( !bundle.hasPermission( perm ) )
                         {
-                            log( LogService.LOG_INFO, "Permission to register service {0} is denied", new Object[]
+                            log( LogService.LOG_DEBUG, "Permission to register service {0} is denied", new Object[]
                                 { services[i] }, null );
                             allowed = false;
                         }
@@ -618,14 +618,14 @@
             if ( !dm.hasGetPermission() )
             {
                 // bundle has no service get permission
-                log( LogService.LOG_INFO, "No permission to get dependency: {0}", new Object[]
+                log( LogService.LOG_DEBUG, "No permission to get dependency: {0}", new Object[]
                     { dm.getName() }, null );
                 satisfied = false;
             }
             else if ( !dm.isSatisfied() )
             {
                 // bundle would have permission but there are not enough services
-                log( LogService.LOG_INFO, "Dependency not satisfied: {0}", new Object[]
+                log( LogService.LOG_DEBUG, "Dependency not satisfied: {0}", new Object[]
                     { dm.getName() }, null );
                 satisfied = false;
             }
@@ -982,7 +982,7 @@
             // test if we have configuration if such is required
             if ( !acm.hasConfiguration() && acm.getComponentMetadata().isConfigurationRequired() )
             {
-                acm.log( LogService.LOG_INFO, "Missing required configuration, cannot activate", null );
+                acm.log( LogService.LOG_DEBUG, "Missing required configuration, cannot activate", null );
                 acm.changeState( Unsatisfied.getInstance() );
                 return;
             }
@@ -991,7 +991,7 @@
             // test if all the mandatory dependencies are satisfied
             if ( !acm.verifyDependencyManagers( acm.getProperties() ) )
             {
-                acm.log( LogService.LOG_INFO, "Not all dependencies satisified, cannot activate", null );
+                acm.log( LogService.LOG_DEBUG, "Not all dependencies satisified, cannot activate", null );
                 acm.changeState( Unsatisfied.getInstance() );
                 return;
             }
@@ -1000,7 +1000,7 @@
             // test that the bundle has enough permissions to register services
             if ( !acm.hasServiceRegistrationPermissions() )
             {
-                acm.log( LogService.LOG_INFO, "Component is not permitted to register all services, cannot activate",
+                acm.log( LogService.LOG_DEBUG, "Component is not permitted to register all services, cannot activate",
                     null );
                 acm.changeState( Unsatisfied.getInstance() );
                 return;
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
index 89302d7..f386cfa 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
@@ -199,7 +199,7 @@
                             // if static reference: activate if currentl unsatisifed, otherwise no influence
                             if ( m_componentManager.getState() == AbstractComponentManager.STATE_UNSATISFIED )
                             {
-                                m_componentManager.log( LogService.LOG_INFO,
+                                m_componentManager.log( LogService.LOG_DEBUG,
                                     "Dependency Manager: Service {0} registered, activate component", new Object[]
                                         { m_dependencyMetadata.getName() }, null );
 
@@ -275,7 +275,7 @@
         // if the component is pending deactivation)
         if ( m_componentManager.getState() == AbstractComponentManager.STATE_UNSATISFIED )
         {
-            m_componentManager.log( LogService.LOG_INFO,
+            m_componentManager.log( LogService.LOG_DEBUG,
                 "Dependency Manager: Service {0} registered, activate component", new Object[]
                     { m_dependencyMetadata.getName() }, null );
 
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
index f15114d..e64a197 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
@@ -457,7 +457,7 @@
             DependencyManager dm = ( DependencyManager ) it.next();
             if ( !dm.canUpdateDynamically( props ) )
             {
-                log( LogService.LOG_INFO,
+                log( LogService.LOG_DEBUG,
                     "Cannot dynamically update the configuration due to dependency changes induced on dependency {0}",
                     new Object[]
                         { dm.getName() }, null );
