         }
         else
         {
-            allKeys = new Dictionary();
-            for (k in a)  {  allKeys[a] = true;  }
-            for (k in b)  {  allKeys[b] = true;  }
+            for (k in a)
+            {
+                assertEqualsMapKeys(a, b, k);
+            }
 
-            for (k in allKeys)
+            for (k in b)
             {
-                Assert.assertEquals(a[k], b[k]);
+                assertEqualsMapKeys(b, a, k);
             }
         }
     }
+
+    private static function assertEqualsMapKeys(a:*, b:*, k:*):void
+    {
+        if (a[k] !== b[k])
+        {
+            Assert.fail("Key <" + k + "> not equal. " +
+                "Expected:<" + a[k] + "> but was:<" + b[k] + ">");
+        }
+    }
 }
-
 }

import asunit.framework.TestCase;

import org.yellcorp.tools.StringConstants;

import flash.utils.Dictionary;


public class MultiNameGeneratorTest extends TestCase


    public static function assertEqualsMaps(a:*, b:*):void
    {
        var k:*;

        if (a === b)
