diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/DataSetRegistrationIngestionService.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/DataSetRegistrationIngestionService.java
index 6fa9b718229921b3042cd9e63f2d0bd856fe230d..83379ae11e430a30c5623544f3ffc5c13e81e613 100644
--- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/DataSetRegistrationIngestionService.java
+++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/DataSetRegistrationIngestionService.java
@@ -23,10 +23,12 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
+import java.util.Set;
 
 import org.apache.log4j.Logger;
 
@@ -139,14 +141,32 @@ class DataSetRegistrationIngestionService extends IngestionService<DataSetInform
             dataSetForUpdate.setSample(sample);
             dataSetForUpdate.setExperiment(experiment);
             dataSetForUpdate.setParentDatasets(dataSet.getParentDataSetCodes());
+            List<String> existingPropertyCodes = dataSetForUpdate.getAllPropertyCodes();
+            Set<String> newPropertyCodes = extractPropertyNames(dataSetProperties);
             for (NewProperty newProperty : dataSetProperties)
             {
                 dataSetForUpdate.setPropertyValue(newProperty.getPropertyCode(), newProperty.getValue());
             }
+            // set the properties that are in the harvester but not in the data source anymore, to ""
+            existingPropertyCodes.removeAll(newPropertyCodes);
+            for (String propCode : existingPropertyCodes)
+            {
+                dataSetForUpdate.setPropertyValue(propCode, "");
+            }
         }
         return null;
     }
 
+    private Set<String> extractPropertyNames(List<NewProperty> dataSetProperties)
+    {
+        Set<String> existingPropertyNames = new HashSet<String>();
+        for (NewProperty prop : dataSetProperties)
+        {
+            existingPropertyNames.add(prop.getPropertyCode());
+        }
+        return existingPropertyNames;
+    }
+
     class FileDetails
     {
         final int crc32checksum;