Unity crashes after specific coroutine.

I’m working on a project that involves a truck moving back and forth every now and then. The back and forth movements are managed in a couple of coroutines. Every time I play the game, right after the second coroutine (backwards movement) finishes, Unity crashes. I’ve tried making sure to stop all coroutines after each coroutine in case they’re taking up too much CPU. Here is the coroutines involved (the backwards movement is the one that crashes):

IEnumerator MoveTruckForward(float time)
	{
		float elapsedTime = 0;

		//-starting and ending positions for truck
		Vector3 startingPos = new Vector3(0, 0, 0);
		Vector3 endingPos = new Vector3 (4, 0, 0);

		//-starting rotations for wheels
		Vector3 back_angles = wheel_back.transform.rotation.eulerAngles;
		Vector3 front_angles = wheel_front.transform.rotation.eulerAngles;

		while (elapsedTime < 4)
		{
			//-rotates back wheel while truck is moving
			back_angles.z = Mathf.Lerp(back_angles.z, -1440, (elapsedTime/time) / 30);
			wheel_back.transform.eulerAngles = back_angles;

			//-rotates front wheel while truck is moving
			front_angles.z = Mathf.Lerp(front_angles.z, -1440, (elapsedTime/time) / 30);
			wheel_front.transform.eulerAngles = front_angles;

			//-moves truck to ending pos
			truck.transform.position = Vector3.Lerp(startingPos, endingPos, (elapsedTime / time));

			elapsedTime += Time.deltaTime;

			yield return null;
		}

	}

	IEnumerator MoveTruckBackward(float time)
	{
		float elapsedTime = 0;

		//-starting and ending positions for truck
		Vector3 startingPos = new Vector3 (4, 0, 0);
		Vector3 endingPos = new Vector3 (0, 0, 0);

		//-starting rotations for wheels
		Vector3 back_angles = wheel_back.transform.rotation.eulerAngles;
		Vector3 front_angles = wheel_front.transform.rotation.eulerAngles;

		while (elapsedTime < 4)
		{
			//-rotates back wheel while truck is moving
			back_angles.z = Mathf.Lerp(back_angles.z, 1440, (elapsedTime/time) / 40);
			wheel_back.transform.eulerAngles = back_angles;

			//-rotates front wheel while truck is moving
			front_angles.z = Mathf.Lerp(front_angles.z, 1440, (elapsedTime/time) / 40);
			wheel_front.transform.eulerAngles = front_angles;

			//-moves truck to ending pos
			truck.transform.position = Vector3.Lerp(startingPos, endingPos, (elapsedTime / time));

			elapsedTime += Time.deltaTime;

			yield return null;

		}
	}

Again, it only happens after the first instance of the truck moving back, regardless of how many coroutines have happened beforehand. Any help would be greatly appreciated.

Feel kinda dumb to say this, but I just had to update to Unity 4.5.3 which recently came out. I suppose this is something they addressed in the update because this completely fixed it. Thanks for your help, everyone.