diff --git a/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/DirectoryWatcher.java b/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/DirectoryWatcher.java
index f1bcb83..1a20f95 100644
--- a/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/DirectoryWatcher.java
+++ b/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/DirectoryWatcher.java
@@ -481,17 +481,20 @@
         Collection uninstalledBundles = uninstall(deleted);
         Collection updatedBundles = update(modified);
         Collection installedBundles = install(created);
-        
-        Set toRefresh = new HashSet();
-        toRefresh.addAll( uninstalledBundles );
-        toRefresh.addAll(updatedBundles);
-        toRefresh.addAll( installedBundles );
-        findBundlesWithFragmentsToRefresh( toRefresh );
-        findBundlesWithOptionalPackagesToRefresh( toRefresh );
-        if (toRefresh.size() > 0)
+
+        if (!uninstalledBundles.isEmpty() || !updatedBundles.isEmpty() || !installedBundles.isEmpty())
         {
-            // Refresh if any bundle got uninstalled or updated.
-            refresh((Bundle[]) toRefresh.toArray(new Bundle[toRefresh.size()]));
+            Set toRefresh = new HashSet();
+            toRefresh.addAll(uninstalledBundles);
+            toRefresh.addAll(updatedBundles);
+            toRefresh.addAll(installedBundles);
+            findBundlesWithFragmentsToRefresh(toRefresh);
+            findBundlesWithOptionalPackagesToRefresh(toRefresh);
+            if (toRefresh.size() > 0)
+            {
+                // Refresh if any bundle got uninstalled or updated.
+                refresh((Bundle[]) toRefresh.toArray(new Bundle[toRefresh.size()]));
+            }
         }
 
         if (startBundles)
