diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/NormalizedSampleIdentifier.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/NormalizedSampleIdentifier.java
index 04ee3d71bd881628032fe027d77b86ef476b7020..a94442d9396e56dabe30ff1472d5e3ccde9b4fe5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/NormalizedSampleIdentifier.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/NormalizedSampleIdentifier.java
@@ -35,6 +35,7 @@ public class NormalizedSampleIdentifier
         private String space;
         private String project;
         private String code;
+        private boolean codeOnly;
         
         private void extractPartsFrom(String identifier)
         {
@@ -57,6 +58,7 @@ public class NormalizedSampleIdentifier
             } else
             {
                 code = identifier;
+                codeOnly = true;
             }
         }
         
@@ -123,19 +125,22 @@ public class NormalizedSampleIdentifier
         String identifier = sample.getIdentifier().toUpperCase();
         identifierParts.extractPartsFrom(identifier);
 
-        if (identifierParts.space == null)
+        if (identifierParts.codeOnly)
         {
-            identifierParts.space = normalizeSpaceCode(sample.getDefaultSpaceIdentifier());
-        }
-
-        if (identifierParts.space == null)
-        {
-            identifierParts.space = normalizeSpaceCode(homeSpace);
-        }
-
-        if (identifierParts.space == null)
-        {
-//            throw UserFailureException.fromTemplate("Cannot determine space for sample " + sample);
+            if (identifierParts.space == null)
+            {
+                identifierParts.space = normalizeSpaceCode(sample.getDefaultSpaceIdentifier());
+            }
+            
+            if (identifierParts.space == null)
+            {
+                identifierParts.space = normalizeSpaceCode(homeSpace);
+            }
+            
+            if (identifierParts.space == null)
+            {
+                throw UserFailureException.fromTemplate("Cannot determine space for sample " + sample);
+            }
         }
 
         if (identifierParts.code.contains(":"))
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/NormalizedSampleIdentifierTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/NormalizedSampleIdentifierTest.java
index ce4bb2614c6d71092c00a2355f3493c8daf07856..d56c5e89323bcb35d916fe6e3557c43b3fce1709 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/NormalizedSampleIdentifierTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/NormalizedSampleIdentifierTest.java
@@ -57,6 +57,21 @@ public class NormalizedSampleIdentifierTest
         assertEquals(identifier.getContainerCode(), null);
     }
     
+    @Test
+    public void testNewSharedSampleWithCodeNoHomeSpaceNoDefaultSpace()
+    {
+        newSample.setIdentifier("a");
+        newSample.setDefaultSpaceIdentifier(null);
+        
+        try
+        {
+            new NormalizedSampleIdentifier(newSample, null);
+        } catch (UserFailureException ex)
+        {
+            assertEquals(ex.getMessage(), "Cannot determine space for sample A");
+        }
+    }
+    
     @Test
     public void testNewSharedSampleComponent()
     {