I think you've hit bug city in the associative array implementation. The "this" in there doesn't seem to point at anything meaningful. This is probably worthy of a bug report. A potential workaround is to store pointers to your structs in the associative array, that way you can set them up ahead of time, then just do data["test"] = ptr; instead.