im building a flash car game where if u hit the sides of the buildings you bounce off

my problem is that sometimes you get stuck in the walls and it doesnt bounce at all

heres my bounce code

```
public function moveCar(timeDiff:Number) {
// get current position
var carPos:Point = new Point(gamesprite.car.x, gamesprite.car.y);
// calculate change
var carAngle:Number = gamesprite.car.rotation;
var carAngleRadians:Number = (carAngle/360)*(2.0*Math.PI);
var carMove:Number = speed*timeDiff;
var dx:Number = Math.cos(carAngleRadians)*carMove;
var dy:Number = Math.sin(carAngleRadians)*carMove;
// see if car is NOT on the road
if (!gamesprite.road.hitTestPoint(carPos.x+dx+gamesprite.x, carPos.y+dy+gamesprite.y, true)) {
gamesprite.car.y = gamesprite.side.y;
gamesprite.car.x = gamesprite.side.x;
// see if car is on the side
//bounce off
if (gamesprite.side.hitTestPoint(gamesprite.car.x, gamesprite.car.y, true)) {
gamesprite.y = (Math.sin(gamesprite.car.rotation * 0.018) * speed) * 5 / -1;
gamesprite.x = speed * Math.cos(gamesprite.car.rotation * 0.018) * 4;
speed = 0 - speed * bounce;
}
}
// set new position of car
gamesprite.car.x = carPos.x+dx;
gamesprite.car.y = carPos.y+dy;
}
```

heres a copy of the game

here

can someone help me out plz

thanks