diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/entityregistration/SampleAndDataSetControlFileProcessor.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/entityregistration/SampleAndDataSetControlFileProcessor.java
index f641a2f71a340560de53bc4510818e48fcb353b8..5066a24b08900235a9e899a55854bc9ac6ea412a 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/entityregistration/SampleAndDataSetControlFileProcessor.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/entityregistration/SampleAndDataSetControlFileProcessor.java
@@ -103,7 +103,7 @@ class SampleAndDataSetControlFileProcessor extends AbstractSampleAndDataSetProce
         {
             String sampleTypeCode =
                     properties
-                            .get(SampleAndDataSetRegistrationHandler.SAMPLE_TYPE_CONTROL_FILE_KEY);
+                            .tryGet(SampleAndDataSetRegistrationHandler.SAMPLE_TYPE_CONTROL_FILE_KEY);
             if (null == sampleTypeCode)
             {
                 return null;
@@ -117,7 +117,7 @@ class SampleAndDataSetControlFileProcessor extends AbstractSampleAndDataSetProce
         {
             String dataSetTypeCode =
                     properties
-                            .get(SampleAndDataSetRegistrationHandler.DATA_SET_TYPE_CONTROL_FILE_KEY);
+                            .tryGet(SampleAndDataSetRegistrationHandler.DATA_SET_TYPE_CONTROL_FILE_KEY);
             if (null == dataSetTypeCode)
             {
                 return null;
@@ -129,7 +129,7 @@ class SampleAndDataSetControlFileProcessor extends AbstractSampleAndDataSetProce
 
         public String tryUserString()
         {
-            return properties.get(SampleAndDataSetRegistrationHandler.USER_CONTROL_FILE_KEY);
+            return properties.tryGet(SampleAndDataSetRegistrationHandler.USER_CONTROL_FILE_KEY);
         }
     }
 
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/SampleAndDatasetRegistrationHandlerTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/SampleAndDatasetRegistrationHandlerTest.java
index 563e416bb370c8bcbc6640ad10ee96282935d8f5..651354882bc2384eb578e6ce00db350fa3f641b6 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/SampleAndDatasetRegistrationHandlerTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/SampleAndDatasetRegistrationHandlerTest.java
@@ -17,6 +17,9 @@
 package ch.systemsx.cisd.etlserver.entityregistration;
 
 import static ch.systemsx.cisd.common.Constants.IS_FINISHED_PREFIX;
+import static ch.systemsx.cisd.etlserver.entityregistration.SampleAndDataSetRegistrationHandler.DATA_SET_TYPE_PROPERTIES_KEY;
+import static ch.systemsx.cisd.etlserver.entityregistration.SampleAndDataSetRegistrationHandler.SAMPLE_TYPE_PROPERTIES_KEY;
+
 import java.io.File;
 import java.io.IOException;
 import java.util.Collections;
@@ -43,6 +46,7 @@ import ch.systemsx.cisd.common.mail.EMailAddress;
 import ch.systemsx.cisd.common.mail.IMailClient;
 import ch.systemsx.cisd.common.test.RecordingMatcher;
 import ch.systemsx.cisd.etlserver.DataSetRegistrationAlgorithm;
+import ch.systemsx.cisd.etlserver.IDataSetHandler;
 import ch.systemsx.cisd.etlserver.IExtensibleDataSetHandler;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
@@ -64,6 +68,8 @@ public class SampleAndDatasetRegistrationHandlerTest extends AbstractFileSystemT
 {
     private static final String SPACE_CODE = "MYSPACE";
 
+    private static final String HANDLER_PROP_PREFIX = IDataSetHandler.DATASET_HANDLER_KEY + ".";
+
     protected Mockery context;
 
     protected IEncapsulatedOpenBISService openbisService;
@@ -217,6 +223,44 @@ public class SampleAndDatasetRegistrationHandlerTest extends AbstractFileSystemT
         context.assertIsSatisfied();
     }
 
+    @Test
+    public void testDefaultSampleAndDataSetTypes()
+    {
+        final RecordingMatcher<DataSetInformation> dataSetInfoMatcher =
+                new RecordingMatcher<DataSetInformation>();
+        final RecordingMatcher<NewSample> newSampleMatcher = new RecordingMatcher<NewSample>();
+
+        setupOpenBisExpectations();
+        NewExternalData externalData = setupDataSetHandlerExpectations(dataSetInfoMatcher, 3);
+        setupUpdateSampleExistsExpectations("S1", false);
+        setupUpdateSampleExistsExpectations("S2", false);
+        setupUpdateSampleExistsExpectations("S3", false);
+        setupRegisterSampleAndDataSetExpectations(externalData, newSampleMatcher, 3);
+
+        final String folderName = "no-global-config";
+        final RecordingMatcher<DataHandler> attachmentMatcher = new RecordingMatcher<DataHandler>();
+        final RecordingMatcher<EMailAddress[]> addressesMatcher =
+                new RecordingMatcher<EMailAddress[]>();
+        setupSuccessEmailExpectations(attachmentMatcher, addressesMatcher, folderName);
+
+        createWorkingCopyOfTestFolder(folderName);
+
+        Properties props = createDefaultHandlerProps();
+        props.put(HANDLER_PROP_PREFIX + SAMPLE_TYPE_PROPERTIES_KEY, "DEF_SAMPLE_TYPE");
+        props.put(HANDLER_PROP_PREFIX + DATA_SET_TYPE_PROPERTIES_KEY, "DEF_DS_TYPE");
+        initializeDataSetHandler(props);
+        handler.handleDataSet(markerFile);
+
+        String logText =
+                "Global properties extracted from file 'control.tsv': SAMPLE_TYPE(null) DATA_SET_TYPE(null) USER(test@test.test)\n"
+                        + "Registered sample/data set pair SampleDataSetPair[sampleIdentifier=/MYSPACE/S1,sampleProperties={prop1: VAL10,prop2: VAL20,prop3: VAL30},dataSetInformation=User::test;Data Set Type::DEF_DS_TYPE;Experiment Identifier::/MYSPACE/MYPROJ/EXP1;Production Date::;Is complete::U]\n"
+                        + "Registered sample/data set pair SampleDataSetPair[sampleIdentifier=/MYSPACE/S2,sampleProperties={prop1: VAL11,prop2: VAL21,prop3: VAL31},dataSetInformation=User::test;Data Set Type::DEF_DS_TYPE;Experiment Identifier::/MYSPACE/MYPROJ/EXP2;Production Date::;Is complete::U]\n"
+                        + "Registered sample/data set pair SampleDataSetPair[sampleIdentifier=/MYSPACE/S3,sampleProperties={prop1: VAL12,prop2: VAL22,prop3: VAL32},dataSetInformation=User::test;Data Set Type::DEF_DS_TYPE;Experiment Identifier::/MYSPACE/MYPROJ/EXP3;Production Date::;Is complete::U]";
+        checkAppenderContent(logText, folderName);
+
+        context.assertIsSatisfied();
+    }
+
     @Test
     public void testRegisteringWithEmptyLinesInControlFile()
     {
@@ -393,10 +437,16 @@ public class SampleAndDatasetRegistrationHandlerTest extends AbstractFileSystemT
         context.assertIsSatisfied();
     }
 
-    private void initializeDefaultDataSetHandler()
+    private Properties createDefaultHandlerProps()
     {
         final Properties props = new Properties();
         props.setProperty("dataset-handler.data-space", "store");
+        return props;
+    }
+
+    private void initializeDefaultDataSetHandler()
+    {
+        Properties props = createDefaultHandlerProps();
         initializeDataSetHandler(props);
     }
 
@@ -415,7 +465,11 @@ public class SampleAndDatasetRegistrationHandlerTest extends AbstractFileSystemT
 
         workingCopy = new File(workingDirectory, folderName);
         FileOperations.getInstance().copy(dataSetFile, workingCopy);
-        FileOperations.getInstance().deleteRecursively(new File(workingCopy, ".svn"));
+        final File svnFolder = new File(workingCopy, ".svn");
+        if (svnFolder.exists())
+        {
+            FileOperations.getInstance().deleteRecursively(svnFolder);
+        }
 
         markerFile = new File(workingDirectory, IS_FINISHED_PREFIX + folderName);
         FileUtilities.writeToFile(markerFile, "");
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/test-data/no-global-config/control.tsv b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/test-data/no-global-config/control.tsv
new file mode 100644
index 0000000000000000000000000000000000000000..9aa40df1f2c800b06da6f57f68b9c2560e3dfc3a
--- /dev/null
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/test-data/no-global-config/control.tsv
@@ -0,0 +1,9 @@
+# Control Parameters
+#! GLOBAL_PROPERTIES_START
+#!   USERID = test@test.test
+#! GLOBAL_PROPERTIES_END
+# Data
+S_identifier	S_experiment	S_PROP1	S_PROP2	S_PROP3	D_file_type	D_PROP1	D_PROP2	FOLDER
+/MYSPACE/S1	/MYSPACE/MYPROJ/EXP1	VAL10	VAL20	VAL30	FILE_TYPE	VAL40	VAL50	ds1/
+/MYSPACE/S2	/MYSPACE/MYPROJ/EXP2	VAL11	VAL21	VAL31	FILE_TYPE	VAL41	VAL51	ds2/
+/MYSPACE/S3	/MYSPACE/MYPROJ/EXP3	VAL12	VAL22	VAL32	FILE_TYPE	VAL42	VAL52	ds3/
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/test-data/no-global-config/ds1/dataset.txt b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/test-data/no-global-config/ds1/dataset.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/test-data/no-global-config/ds2/dataset.txt b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/test-data/no-global-config/ds2/dataset.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/test-data/no-global-config/ds3/dataset.txt b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/entityregistration/test-data/no-global-config/ds3/dataset.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391