The character fails to jump sometimes

Hello, I am using this script to make a ball role and jump and it is working. However, sometimes then i try to jump, while I am also pressing s and d to role, it will not jump.
Is there anything that i can improve to make it work better?
I hope that you can help me.
Frederik

#pragma strict

var speed : float;
var forward : KeyCode;
var backward : KeyCode;
var right : KeyCode;
var left : KeyCode;
var jumpForce : float;
var jump : KeyCode;
private var isFalling = false;

function FixedUpdate ()
{
	if(Input.GetKeyDown(jump) && isFalling == false)
	{
		rigidbody.velocity.y = jumpForce;
	}
	isFalling = true;
	//Handle ball rotation
	if(Input.GetKey(forward))
	{
		rigidbody.AddForce(Vector3.forward*speed);
	}
	if(Input.GetKey(backward))
	{
		rigidbody.AddForce(-Vector3.forward*speed);
	}
	if(Input.GetKey(right))
	{
		rigidbody.AddForce(Vector3.right*speed);
	}
	if(Input.GetKey(left))
	{
		rigidbody.AddForce(Vector3.left*speed);
	}
}
function OnCollisionStay ()
{
	isFalling = false;
}

I don’t know if it will fix everything, but I think that you you should set isFalling to true only when you have jumped, instead of every time.

if(Input.GetKeyDown(jump) && isFalling == false)
{
    rigidbody.velocity.y = jumpForce;
    isFalling = true;
}