Enumerating maps of pointers doesn't work right?

Example code:

		var value = 99;
		var valuep: Pointer<Int> = untyped __cpp__("&{0}", value);

		var map: Map<Pointer<Int>, String> = new Map();
		map[valuep] = "thing";
		trace(map);
		for (lhs => rhs in map)
			trace(lhs, rhs);

Result:

src/test.hx:105: [Pointer(0x7fff47307e04) => thing]
src/test.hx:107: Pointer(0x7fff47307e04),null

It looks as if doing looks on a map of pointers simply doesn’t work, as this produces the same result:

	for (lhs in map.keys())
		trace(lhs, map[lhs]);

Is this a known bug, and are there any workarounds?