 						/* Stop in front of sprite (at front of segment). */
 						if (hardness >= 100)
 						{
-							_isStoppedAfterCollision = true;
+							_isStoppedByCollision = true;
 							/* Determines how quick player can steer away from obstacle after being stopped. */
 							if (_playerEnabled) _playerSpeed = _maxSpeed / 5;
 							else _playerSpeed = 0;
 							_position = increase(segment.point1.world.z, -_playerZ, _trackLength);
 							_idleAfterCollision = true;
 						}
+						else
+						{
+							_isStoppedByCollision = false;
+						}
 						break;
 					}
 					else if (e.type == RTObjectTypes.COLLECTIBLE)
 					{
+						_isStoppedByCollision = false;
 						/* Remove the entity from the racetrack! */
 						disableEntity(e);
 					}
+				}
+				else
+				{
+					_isStoppedByCollision = false;
 				}
 			}
 		}

		private function disablePlayer(duration:Number):void
		{
			_playerEnabled = false;
			if (_isStoppedAfterCollision)
			{
				_playerSpeed = 0;
			}

					 * player is actually off-road! */
					if (e.type == RTObjectTypes.OFFROAD && (_playerX < -1 || _playerX > 1))
					{
						_isStoppedByCollision = true;
						_playerSpeed = _maxSpeed / 5;
						/* Stop in front of sprite (at front of segment). */
						_position = increase(segment.point1.world.z, -_playerZ, _trackLength);
