I doubt this has anything to do with passing the printer by reference, but you could try passing it by pointer.

Cheers,
_