how to get from run speed back to movment speed

i have added a run speed for left shift key… but when released my character controller wont slow back to walking speed how would i do this, here is a sample of my code…

[RequireComponent (typeof(CharacterController))]
public class firstpersoncontroler : MonoBehaviour {

public float runspeed = 30.0f;
public float JumpSpeed = 20.0f;
public float movementspeed = 5.0f;
public float mouseSensitivity = 10.0f;
public float updownrange = 60.0f;
float verticalrot = 0;
float verticalverlocity = 0;

CharacterController caractorcontroller;

// Use this for initialization
void Start () {

	Screen.lockCursor = true;
 caractorcontroller = GetComponent<CharacterController> ();
}

// Update is called once per frame
void Update () {

	//rotation control
	float rotleftright = Input.GetAxis ("Mouse X")* mouseSensitivity ;
	transform.Rotate (0, rotleftright, 0);

	verticalrot -= Input.GetAxis ("Mouse Y") * mouseSensitivity;

	verticalrot = Mathf.Clamp (verticalrot, -updownrange, updownrange);

	Camera.main.transform.localRotation = Quaternion.Euler (verticalrot, 0, 0);

	//movement

	// foraward, back, side step controlles
	float forwardspeed = Input.GetAxis ("Vertical")* movementspeed;
	float sidespeed = Input.GetAxis ("Horizontal")* movementspeed;



	verticalverlocity += Physics.gravity.y * Time.deltaTime;

	if (caractorcontroller.isGrounded && Input.GetButton ("Jump")) {
	
					verticalverlocity = JumpSpeed;
	}

	if (Input.GetKeyDown(KeyCode.LeftShift)){
		movementspeed = runspeed;
	}
	else if (Input.GetKeyUp(KeyCode.LeftShift)){
		runspeed = movementspeed;
	}

	Vector3 speed = new Vector3 (sidespeed, verticalverlocity, forwardspeed);

	// rotation control - add on
	speed = transform.rotation * speed;

	caractorcontroller.Move ( speed * Time.deltaTime );

}

}

You could simplify this by using Input.GetKey and use a temporary variable for calculating speed:

Starting at line 35:

 float curspeed = (Input.GetKey(KeyCode.LeftShift) ? runspeed : movementspeed); 
 float forwardspeed = Input.GetAxis ("Vertical")* curspeed;
 float sidespeed = Input.GetAxis ("Horizontal")* curspeed;

Then remove lines 50 - 55

You can create a new variable for your normal movement speed.

if(Input.GetKeyDown(KeyCode.LefShift)){
     movementSpeed = runSpeed;
}
else if(Input.GetKeyUp(KeyCode.LeftShift)){
     movementSpeed = normalSpeed; 
}