diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/DssComponentTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/DssComponentTest.java
index 30df5c2b614611e10ca0de1e5fe4907ce00134eb..2ef1bf54ec7ff519c52b38a5df15f79f94a64b42 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/DssComponentTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/DssComponentTest.java
@@ -29,6 +29,7 @@ import java.util.regex.Pattern;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.time.DateUtils;
+import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
@@ -75,6 +76,15 @@ public class DssComponentTest extends SystemTestCase
     // Keep track of the number of times a data set was registered during the course of running the
     // tests
     private int putCount = 0;
+    
+    private List<String> registeredDataSets = new ArrayList<String>();
+    
+    @AfterClass
+    public void deleteRegisteredDataSets()
+    {
+        IEncapsulatedOpenBISService openBISService = ServiceProvider.getOpenBISService();
+        openBISService.removeDataSetsPermanently(registeredDataSets, "DssComponentTest");
+    }
 
     @BeforeMethod
     public void beforeMethod()
@@ -87,11 +97,18 @@ public class DssComponentTest extends SystemTestCase
     {
         File exampleDataSet = new File(workingDirectory, "my-data");
         NewDataSetDTO newDataset = createNewDataSetDTO(exampleDataSet);
-        IDataSetDss dataSet = dss.putDataSet(newDataset, exampleDataSet);
+        IDataSetDss dataSet = registerDataSet(exampleDataSet, newDataset);
         checkDataSet(dataSet);
         putCount++;
     }
 
+    private IDataSetDss registerDataSet(File exampleDataSet, NewDataSetDTO newDataset)
+    {
+        IDataSetDss dataSet = dss.putDataSet(newDataset, exampleDataSet);
+        registeredDataSets.add(dataSet.getCode());
+        return dataSet;
+    }
+
     @Test
     public void testFailingPutDataSet() throws Exception
     {
@@ -233,7 +250,7 @@ public class DssComponentTest extends SystemTestCase
         File exampleDataSet = new File(workingDirectory, "my-data");
         NewDataSetDTO newDataset = createNewDataSetDTO(exampleDataSet);
         newDataset.setParentDataSetCodes(Arrays.asList(code));
-        IDataSetDss dataSet = dss.putDataSet(newDataset, exampleDataSet);
+        IDataSetDss dataSet = registerDataSet(exampleDataSet, newDataset);
         checkDataSet(dataSet);
         putCount++;
     }
@@ -349,7 +366,7 @@ public class DssComponentTest extends SystemTestCase
         dss = createDssComponent("observer");
         File exampleDataSet = new File(workingDirectory, "observer-data");
         NewDataSetDTO newDataset = createNewDataSetDTO(exampleDataSet);
-        dss.putDataSet(newDataset, exampleDataSet);
+        registerDataSet(exampleDataSet, newDataset);
         putCount++;
     }