[master] workaround for some g++: pass a concrete obj to avoid incorrect copy.

I encountered this with g++ 4.2.1 on FreeBSD 8.4 and confirmed this fix worked.
an easy fix, directly committing it myself.