diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java
index 1ba2d799144c3c533000a9cabef52e5fd8d23aff..353c68e3d016caacac11e80b2dcdc6a65360b1ea 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java
@@ -1123,7 +1123,7 @@ public final class DataSetTable extends AbstractDataSetBusinessObject implements
         if (details.isSampleUpdateRequested() && dataSetUpdates.getSampleIdentifierOrNull() != null)
         {
             updateSample(dataSet, dataSetUpdates.getSampleIdentifierOrNull());
-        } else
+        } else if (dataSetUpdates.getExperimentIdentifierOrNull() != null)
         {
             updateExperiment(dataSet, dataSetUpdates.getExperimentIdentifierOrNull());
             dataSet.setSample(null);
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerDatabaseTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerDatabaseTest.java
index a96e957d5ac903f33347dabf06ca7e88a4b285c4..671eb050cc6db5b93dcaf227df0121df419bb648 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerDatabaseTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerDatabaseTest.java
@@ -167,6 +167,7 @@ public class GenericServerDatabaseTest extends AbstractDAOTest
         NewDataSet newDataset = new NewDataSet();
         newDataset.setCode(dataset.getCode());
         newDataset.setSampleIdentifierOrNull(null);
+        newDataset.setExperimentIdentifier(dataset.getExperiment().getIdentifier());
 
         DataSetBatchUpdateDetails updateDetails = new DataSetBatchUpdateDetails();
         updateDetails.setSampleUpdateRequested(true);
@@ -177,24 +178,6 @@ public class GenericServerDatabaseTest extends AbstractDAOTest
         Assert.assertEquals(TEST_EXPERIMENT_PERMID, dataset.getExperiment().getPermId());
     }
 
-    @Test(expectedExceptions = AssertionError.class)
-    public void testClearingExperimentShouldNotBeAllowed()
-    {
-        DataPE dataset = findData(TEST_EXPERIMENT_CONTAINED_DATA_SET_CODE);
-
-        Assert.assertEquals(TEST_EXPERIMENT_SAMPLE_PERMID, dataset.tryGetSample().getPermId());
-        Assert.assertEquals(TEST_EXPERIMENT_PERMID, dataset.getExperiment().getPermId());
-
-        NewDataSet newDataset = new NewDataSet();
-        newDataset.setCode(dataset.getCode());
-        newDataset.setExperimentIdentifier(null);
-
-        DataSetBatchUpdateDetails updateDetails = new DataSetBatchUpdateDetails();
-        updateDetails.setExperimentUpdateRequested(true);
-
-        update(dataset, newDataset, updateDetails);
-    }
-
     private void update(DataPE data, NewDataSet newDataset, DataSetBatchUpdateDetails updateDetails)
     {
         List<NewDataSet> newDatasets = new ArrayList<NewDataSet>();