diff --git a/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java b/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java
index bbb8e1f..4e2114c 100644
--- a/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java
+++ b/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java
@@ -18,6 +18,18 @@
  */
 package org.apache.felix.fileinstall.internal;
 
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Properties;
+
 import org.apache.felix.cm.file.ConfigurationHandler;
 import org.apache.felix.fileinstall.ArtifactInstaller;
 import org.apache.felix.fileinstall.internal.Util.Logger;
@@ -31,18 +43,6 @@
 import org.osgi.service.cm.ConfigurationEvent;
 import org.osgi.service.cm.ConfigurationListener;
 
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Dictionary;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.Properties;
-
 /**
  * ArtifactInstaller for configurations.
  * TODO: This service lifecycle should be bound to the ConfigurationAdmin service lifecycle.
@@ -212,7 +212,8 @@
         String pid[] = parsePid(f.getName());
         Configuration config = getConfiguration(f.getAbsolutePath(), pid[0], pid[1]);
 
-        Hashtable old = new Hashtable(new DictionaryAsMap(config.getProperties()));
+        Dictionary props = config.getProperties();
+        Hashtable old = props != null ? new Hashtable(new DictionaryAsMap(props)) : new Hashtable();
         old.remove( DirectoryWatcher.FILENAME );
         old.remove( Constants.SERVICE_PID );
         old.remove( ConfigurationAdmin.SERVICE_FACTORYPID );
