Scale is messed up when adding GameObject

I have a character (a rigidbody character) that jumps on moving platforms. When he lands on a platform I want him to follow it. In order to do that I add the character to the platform object (from this tutorial) when he collides with it (OnCollisionEnter), and simular remove him from the platform object OnColliderExit.

This method seems like a good one (other methods are welcome) and it works besides one thing, the scale is messed up.

When i jump on and off the scale of my character is slightly changed a little each time resulting in a ugly looking character.

How can I avoid this?

I wanna add on thing i forgot. This only happens if there is some horizontal motion. Jumping up and off a platform with no horizontal movement works fine.

Here is also the simple code i use on the player:

function OnCollisionEnter(collision : Collision) {
  if (collision.gameObject.tag == "platform") {
    transform.parent = collision.gameObject.transform;
  }
}

Still debugging, but running out of options…

Edit: I just found out it only happens when my character is turning with transform.Rotate. Still havent found out why though