diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationDetails.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationDetails.java
index 7a7b9cd15b7d70b8f43502be4ac777db51c86aee..4b0ab782301347e511a96c7a9230a39d6b6a4c3a 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationDetails.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationDetails.java
@@ -141,14 +141,20 @@ public class DataSetRegistrationDetails<T extends DataSetInformation> implements
     public void setPropertyValue(String propertyCode, String propertyValue)
     {
         ExtractableData datasetExtractableData = dataSetInformation.getExtractableData();
-        List<NewProperty> properties = datasetExtractableData.getDataSetProperties();
-        NewProperty property = EntityHelper.tryFindProperty(properties, propertyCode);
-        if (property != null)
+        if (propertyValue == null)
         {
-            property.setValue(propertyValue);
+            datasetExtractableData.removeDataSetProperty(propertyCode);
         } else
         {
-            properties.add(new NewProperty(propertyCode, propertyValue));
+            List<NewProperty> properties = datasetExtractableData.getDataSetProperties();
+            NewProperty property = EntityHelper.tryFindProperty(properties, propertyCode);
+            if (property != null)
+            {
+                property.setValue(propertyValue);
+            } else
+            {
+                properties.add(new NewProperty(propertyCode, propertyValue));
+            }
         }
     }