wrtReparentTo() distorting the camera angle

So I’m creating a Toontown-based game, and the player goes through tunnels to get to different areas. When I begin the sequence to go through the tunnel, I reparent the camera to render instead of the avatar, using base.camera.wrtReparentTo(render). However, after reparenting it back to the avatar, using base.camera.wrtReparentTo(Toon), the camera angle becomes somewhat distorted (as if it was using a wide-angle lens). After doing the sequence several times, it gets gradually worse. I’m using wrtReparentTo() so that I don’t get that split second of the wrong camera position before repositioning it. Is there something I’m doing wrong?

I think this is an inherent problem caused by wrtReparentTo. From the manual:

Hmm… interesting. I guess I’ll just have to avoid using it. Is there any other way to change the parent of the camera and still have it in the same position?

Maybe what’s messing up is the scale of your object?
I guess one of the ways of achieving that is:

targetPos = base.camera.getPos(base.render)
base.camera.reparentTo(base.render)
base.camera.setPos(targetPos)

Maybe you want to save targetHpr as well.