Fix for DIRAPI-340
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/UniqueMemberComparator.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/UniqueMemberComparator.java
index eeffd55..2fe7238 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/UniqueMemberComparator.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/UniqueMemberComparator.java
@@ -21,6 +21,7 @@
 
 
 import org.apache.directory.api.i18n.I18n;
+import org.apache.directory.api.ldap.model.constants.SchemaConstants;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.exception.LdapInvalidDnException;
 import org.apache.directory.api.ldap.model.name.Dn;
@@ -42,6 +43,8 @@
 
     /** A reference to the schema manager */
     private transient SchemaManager schemaManager;
+    
+    private transient ParsedDnComparator dnComparator = new ParsedDnComparator( SchemaConstants.ENTRY_DN_AT_OID );
 
 
     /**
@@ -72,14 +75,7 @@
                 Dn dn1 = getDn( dnstr1 );
                 Dn dn2 = getDn( dnstr2 );
 
-                if ( dn1.equals( dn2 ) )
-                {
-                    return 0;
-                }
-                else
-                {
-                    return -1;
-                }
+                return dnComparator.compare( dn1, dn2 );
             }
             catch ( LdapInvalidDnException ne )
             {
@@ -127,7 +123,7 @@
                 return -1;
             }
 
-            // This is an UID if the '#' is immediatly
+            // This is an UID if the '#' is immediately
             // followed by a BitString, except if the '#' is
             // on the last position
             String uid2 = dnstr2.substring( dash2 + 1 );
@@ -148,12 +144,14 @@
                 return 1;
             }
 
-            if ( dn1.equals( dn2 ) )
+            int dnResult = dnComparator.compare( dn1, dn2 );
+            
+            if ( dnResult == 0 )
             {
                 return uid1.compareTo( uid2 );
             }
 
-            return -1;
+            return dnResult;
         }
     }