diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/ExtendedProperties.java b/common/source/java/ch/systemsx/cisd/common/utilities/ExtendedProperties.java
index 03a756fe107620ba4cbd22811d4c8ab5f0dd2564..f9001e363e866280b3f2005dbecdc5f5272646fd 100644
--- a/common/source/java/ch/systemsx/cisd/common/utilities/ExtendedProperties.java
+++ b/common/source/java/ch/systemsx/cisd/common/utilities/ExtendedProperties.java
@@ -55,22 +55,19 @@ public final class ExtendedProperties extends Properties
     /** The minimum length a string should have to be considered. */
     private static final int MIN_LENGTH = PREFIX.length() + SUFFIX.length() + 1;
 
-    /**
-     * @see Properties#Properties()
-     */
-    public ExtendedProperties()
+    public static ExtendedProperties createWith(Properties properties)
     {
-        super();
+        ExtendedProperties result = new ExtendedProperties();
+        result.putAll(properties);
+        return result;
     }
 
     /**
-     * Creates an empty property list with the specified defaults.
-     * 
-     * @see Properties#Properties(Properties)
+     * @see Properties#Properties()
      */
-    public ExtendedProperties(Properties defaults)
+    public ExtendedProperties()
     {
-        super(defaults);
+        super();
     }
 
     /**
@@ -79,10 +76,15 @@ public final class ExtendedProperties extends Properties
      * @param prefix string, each property key should start with.
      * @param dropPrefix If <code>true</code> the prefix will be removed from the key.
      */
+    public static ExtendedProperties getSubset(Properties properties, String prefix, boolean dropPrefix)
+    {
+        return ExtendedProperties.createWith(properties).getSubset(prefix, dropPrefix);
+    }
+
     public final ExtendedProperties getSubset(final String prefix, boolean dropPrefix)
     {
         assert prefix != null : "Missing prefix";
-        
+
         ExtendedProperties result = new ExtendedProperties();
         int prefixLength = prefix.length();
         for (Enumeration<?> enumeration = propertyNames(); enumeration.hasMoreElements();)
@@ -96,6 +98,21 @@ public final class ExtendedProperties extends Properties
         return result;
     }
 
+    /**
+     * Removes all properies with names starting with given prefix
+     */
+    public void removeSubset(final String prefix)
+    {
+        for (Enumeration<?> enumeration = propertyNames(); enumeration.hasMoreElements();)
+        {
+            String key = enumeration.nextElement().toString();
+            if (key.startsWith(prefix))
+            {
+                remove(key);
+            }
+        }
+    }
+
     private final String expandValue(final String key, final String value)
     {
         if (value == null || value.length() < MIN_LENGTH)
diff --git a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/ExtendedPropertiesTest.java b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/ExtendedPropertiesTest.java
index d347531d710fe55996c5d04f6921a73e7ca5d602..117fb2865ca56ab97d0a9373a0ec383f706bbc21 100644
--- a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/ExtendedPropertiesTest.java
+++ b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/ExtendedPropertiesTest.java
@@ -17,7 +17,6 @@
 package ch.systemsx.cisd.common.utilities;
 
 import static org.testng.AssertJUnit.assertEquals;
-import static org.testng.AssertJUnit.assertNull;
 
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
@@ -46,15 +45,13 @@ public final class ExtendedPropertiesTest
     @Test
     public final void testConstructor()
     {
-        ExtendedProperties newProps = new ExtendedProperties(extendedProperties);
+        ExtendedProperties newProps = ExtendedProperties.createWith(extendedProperties);
         assertEquals(5, extendedProperties.size());
-        // We created an EMPTY list with defaults.
-        assertEquals(0, newProps.size());
-        assertEquals("{}", newProps.toString());
-        // Returns the default value...
-        assertEquals("eins", extendedProperties.getProperty("one"));
-        // ...but the property itself is unknown.
-        assertNull(newProps.get("one"));
+        assertEquals(extendedProperties.size(), newProps.size());
+        String key = "one";
+        String expectedValue = "eins";
+        assertEquals(expectedValue, extendedProperties.getProperty(key));
+        assertEquals(extendedProperties.getProperty(key), newProps.getProperty(key));
     }
 
     @Test
@@ -67,21 +64,33 @@ public final class ExtendedPropertiesTest
 
     @Test
     public final void testGetSubsetString()
+    {
+        int size = extendedProperties.size();
+        extendedProperties.removeSubset("t");
+        assert extendedProperties.size() == size - 2;
+
+        size = extendedProperties.size();
+        extendedProperties.removeSubset("t");
+        assert extendedProperties.size() == size; // nothing removed
+    }
+
+    @Test
+    public final void testRemoveSubsetString()
     {
         ExtendedProperties props = extendedProperties.getSubset("t", false);
         assert props.size() == 2;
         assert props.getProperty("two").equals("zwei");
         assert props.getProperty("three").equals("drei");
-        
+
         props = extendedProperties.getSubset("un", false);
         assert props.size() == 1;
         assert props.getProperty("un").equals("eins");
-        
+
         props = extendedProperties.getSubset("t", true);
         assert props.size() == 2;
         assert props.getProperty("wo").equals("zwei");
         assert props.getProperty("hree").equals("drei");
-        
+
         props = extendedProperties.getSubset("un", true);
         assert props.size() == 1;
         assert props.getProperty("").equals("eins");
@@ -94,7 +103,7 @@ public final class ExtendedPropertiesTest
         ExtendedProperties props = new ExtendedProperties();
         props.setProperty("a", "${b}");
         props.setProperty("b", "${a}");
-        assertEquals("${b}", props.getProperty("b"));    
+        assertEquals("${b}", props.getProperty("b"));
         // Three nodes cyclic dependencies
         props = new ExtendedProperties();
         props.setProperty("a", "A${b}");