diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RoleWithHierarchy.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RoleWithHierarchy.java
index ccb30ebc98059362c718057923ff568bc2e08690..f4a7d235222d4e52b786c2f9e3a1ab0fe5467c49 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RoleWithHierarchy.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RoleWithHierarchy.java
@@ -16,7 +16,7 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.util.HashSet;
+import java.util.LinkedHashSet;
 import java.util.Set;
 
 import com.google.gwt.user.client.rpc.IsSerializable;
@@ -92,7 +92,7 @@ public enum RoleWithHierarchy implements IsSerializable
 
     private final RoleLevel roleLevel;
 
-    private final Set<RoleWithHierarchy> strongerRoles = new HashSet<RoleWithHierarchy>();
+    private final Set<RoleWithHierarchy> strongerRoles = new LinkedHashSet<RoleWithHierarchy>();
 
     private RoleWithHierarchy(RoleWithHierarchy... strongerRoles)
     {
@@ -139,7 +139,7 @@ public enum RoleWithHierarchy implements IsSerializable
 
     public Set<RoleWithHierarchy> getRoles()
     {
-        HashSet<RoleWithHierarchy> roles = new HashSet<RoleWithHierarchy>(strongerRoles);
+        Set<RoleWithHierarchy> roles = new LinkedHashSet<RoleWithHierarchy>(strongerRoles);
         roles.add(this);
         return roles;
     }