Random 2D Jumping With rigidbody2D.AddForce

I’m working on a a 2D platformer and the physics involved with the jumps seem to be random. For some jumps he keeps the same height but some he then almost doubles his height for some reason. I don’t know how to fix this other than directly adjusting the players transform (which just doesn’t feel as natural or smooth). I’ve posted my player movement script (It’s pretty basic because I’m not much of a programmer) and a link to a video showing the problem.

var movementSpeed : float = 200;
var jumpSpeed : float = 300;
var grounded : boolean = false;

var cutScene : boolean = false;
function Update () {
	
	//move
	if(cutScene == false)
		rigidbody2D.MoveRotation(rigidbody2D.rotation - (movementSpeed * Input.GetAxis("Horizontal")) * Time.deltaTime);
		
	//jump
	if(Input.GetAxis ("Jump") && grounded)
		rigidbody2D.AddForce(Vector2(0, jumpSpeed));
		
}

	//test if grounded
function OnCollisionEnter2D(collision: Collision2D) {
	if (collision.gameObject.tag == "Ground")
		grounded = true;
}
function OnCollisionExit2D(collision: Collision2D) {
	if (collision.gameObject.tag == "Ground")
		grounded = false;
}

https://dl.dropboxusercontent.com/u/26430893/Temp/Recording%20(03).mp4

Let me know if you need more info. Thanks =)

Try putting the jump code inside FixedUpdate() instead of Update().