 		 * @param key2 The second dictionary key.
 		 * @private
 		 */
-		private function removeAllSecondary(key2:Object):void
+		public function removeAllSecondary(key2:Object):void
 		{
 			if (weak1)
 				throw new Error("WeakMap cannot be iterated over");
 			_key2ToRemove = key2;
 			map.forEach(removeAllSecondary_each, this);
 		}
-		
 		private var _key2ToRemove:*;
-		private function removeAllSecondary_each(map1:*, key1:*):void
+		private function removeAllSecondary_each(map2:*, key1:*):void
 		{
-			map1['delete'](_key2ToRemove);
+			map2['delete'](_key2ToRemove);
 		}
 		
 		/**

*/
package weavejs.utils
{
	/**
	 * This is a wrapper for a 2-dimensional Map.
	 * 

	{
		public function Dictionary2D(weakPrimaryKeys:Boolean = false, weakSecondaryKeys:Boolean = false, defaultType:Class = null)
		{
			map = weakPrimaryKeys ? new Utils.WeakMap() : new Utils.Map;
			weak1 = weakPrimaryKeys;
			weak2 = weakSecondaryKeys;
			this.defaultType = defaultType;
