diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/MapMaterialTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/MapMaterialTest.java
index 2e94fcd56c3dbd5a5cd549f2b49bde6ad4bf66ed..4f3191f234b88314b8b295b7174133d18be1f145 100644
--- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/MapMaterialTest.java
+++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/MapMaterialTest.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.Iterator;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -194,14 +195,14 @@ public class MapMaterialTest extends AbstractDataSetTest
         assertEquals(type.getCode(), "CONTROL");
         assertEquals(type.getFetchOptions().hasPropertyAssignments(), true);
         List<PropertyAssignment> propertyAssignments = type.getPropertyAssignments();
-        assertEquals(propertyAssignments.get(0).getPropertyType().getCode(), "VOLUME");
-        assertEquals(propertyAssignments.get(0).getPropertyType().getLabel(), "Volume");
-        assertEquals(propertyAssignments.get(0).getPropertyType().getDescription(), "The volume of this person");
-        assertEquals(propertyAssignments.get(0).getPropertyType().isInternalNameSpace(), false);
-        assertEquals(propertyAssignments.get(0).getPropertyType().getDataTypeCode(), DataTypeCode.REAL);
-        assertEquals(propertyAssignments.get(0).isMandatory(), false);
-        assertEquals(extractCodes(propertyAssignments).toString(), 
-                "[VOLUME, IS_VALID, SIZE, PURCHASE_DATE, EYE_COLOR, DESCRIPTION]");
+        PropertyAssignment propertyAssignment = getPropertyAssignment(propertyAssignments, "VOLUME");
+        assertEquals(propertyAssignment.getPropertyType().getCode(), "VOLUME");
+        assertEquals(propertyAssignment.getPropertyType().getLabel(), "Volume");
+        assertEquals(propertyAssignment.getPropertyType().getDescription(), "The volume of this person");
+        assertEquals(propertyAssignment.getPropertyType().isInternalNameSpace(), false);
+        assertEquals(propertyAssignment.getPropertyType().getDataTypeCode(), DataTypeCode.REAL);
+        assertEquals(propertyAssignment.isMandatory(), false);
+        assertOrder(propertyAssignments, "VOLUME", "IS_VALID", "SIZE", "PURCHASE_DATE", "EYE_COLOR", "DESCRIPTION");
         assertEquals(propertyAssignments.size(), 6);
         
         v3api.logout(sessionToken);
@@ -223,21 +224,40 @@ public class MapMaterialTest extends AbstractDataSetTest
         assertEquals(type.getCode(), "CONTROL");
         assertEquals(type.getFetchOptions().hasPropertyAssignments(), true);
         List<PropertyAssignment> propertyAssignments = type.getPropertyAssignments();
-        assertEquals(extractCodes(propertyAssignments).toString(), 
-                "[DESCRIPTION, EYE_COLOR, IS_VALID, PURCHASE_DATE, SIZE, VOLUME]");
+        assertOrder(propertyAssignments, "DESCRIPTION", "EYE_COLOR", "IS_VALID", "PURCHASE_DATE", "SIZE", "VOLUME");
         assertEquals(propertyAssignments.size(), 6);
         
         v3api.logout(sessionToken);
     }
     
-    private List<String> extractCodes(List<PropertyAssignment> propertyAssignments)
+    private PropertyAssignment getPropertyAssignment(List<PropertyAssignment> propertyAssignments, String code)
     {
         List<String> codes = new ArrayList<>();
         for (PropertyAssignment propertyAssignment : propertyAssignments)
         {
-            codes.add(propertyAssignment.getPropertyType().getCode());
+            String propertyCode = propertyAssignment.getPropertyType().getCode();
+            codes.add(propertyCode);
+            if (propertyCode.equals(code))
+            {
+                return propertyAssignment;
+            }
         }
-        return codes;
+        throw new AssertionError("No property '" + code + "' found in " + codes);
+    }
+    
+    private void assertOrder(List<PropertyAssignment> propertyAssignments, String...codes)
+    {
+        Set<String> codesSet = new LinkedHashSet<>(Arrays.asList(codes));
+        List<String> propertyCodes = new ArrayList<>();
+        for (PropertyAssignment assignment : propertyAssignments)
+        {
+            String code = assignment.getPropertyType().getCode();
+            if (codesSet.contains(code))
+            {
+                propertyCodes.add(code);
+            }
+        }
+        assertEquals(propertyCodes.toString(), codesSet.toString());
     }
 
     @Test