diff --git a/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Util.java b/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Util.java
index 9f1bb3f..7192922 100644
--- a/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Util.java
+++ b/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Util.java
@@ -184,7 +184,7 @@
 
     private static Logger getLogger(BundleContext context)
     {
-        if (logger != null)
+        if (logger != null && logger.isValidLogger(context))
         {
             return logger;
         }
@@ -203,11 +203,16 @@
 
     interface Logger
     {
+        boolean isValidLogger(BundleContext context);
         void log(boolean debug, java.lang.String message, java.lang.Throwable throwable);
     }
 
     static class StdOutLogger implements Logger
     {
+        public boolean isValidLogger(BundleContext context)
+        {
+            return true;
+        }
         public void log(boolean debug, String message, Throwable throwable)
         {
             System.out.println(message + (throwable == null ? "" : ": " + throwable));
@@ -237,6 +242,11 @@
             }
         }
 
+        public boolean isValidLogger(BundleContext context)
+        {
+            return context == this.context;
+        }
+
         public void log(boolean debug, String message, Throwable throwable)
         {
             LogService log = getLogService();
