Try using your own orientation system, might make it easier to control it, and actually orientate it to the correct direction.
Somethign along the lines of:
Function _orientate(obj1,obj2)
newx = NewXValue(Object Position X(obj1),Object Angle Y(obj1),10)
newz = NewZValue(Object Position Z(obj1),Object Angle Y(obj1),10)
newy = NewYVlaue(Object Position Y(obj1),Object Angle X(obj1),1)
Position Object obj2,newx,newy,newz
newx = NewXValue(Object Position X(obj1),Object Angle Y(obj1),20)
newz = NewZValue(Object Position Z(obj1),Object Angle Y(obj1),20)
newy = NewYVlaue(Object Position Y(obj1),Object Angle X(obj1),1)
Point Object obj2,newx,newy,newz
EndFunction
Note, that isn't tested, and not guarenteed, you might have to play with the newy values to get it right (if you change it to newy = Object Position Y(obj1), then you'll have the bullet fireing out horizontal to the X/Z axis, not takign into account the pitch of the turret ).
Hope I Helped...

Team EOD :: Programmer/Logical Engineer/All-Round Nice Guy