diff --git a/cadcAccessControl/src/ca/nrc/cadc/ac/User.java b/cadcAccessControl/src/ca/nrc/cadc/ac/User.java
index 1a34123fb3adc70febb6988f8744df19a55181af..19a1b2cd6e8fdaa05652ada5013ffcd2bcfb6568 100644
--- a/cadcAccessControl/src/ca/nrc/cadc/ac/User.java
+++ b/cadcAccessControl/src/ca/nrc/cadc/ac/User.java
@@ -155,22 +155,23 @@ public class User
             return false;
         }
 
-        if (this.equals(other))
-        {
-            return true;
-        }
-
         for (Principal identity: getIdentities())
         {
+            boolean found = false;
             for (Principal op: other.getIdentities())
             {
                 if (op.equals(identity))
                 {
-                    return true;
+                    found = true;
+                    break;
                 }
             }
+            if (!found)
+            {
+                return false;
+            }
         }
-        return false;
+        return true;
     }
 
     /* (non-Javadoc)