its rotating correctly on my system... a few things...
1) might be better if you are not hitting any keys the object will slow down to a stop
2) roll and pitch are independant of any axis... it goes off of the current angle they are pointing... when you pitch the object it rotates forware... if you wait 1/2 a revolution and 'roll object left' (counter-clockwise)... it will appear to roll clockwise (rolling left for object)...
3) noticed that the camera follow command has a 'objangle#' variable... this equals 0 (by default)... and it is never changed ANYWHERE!
my suggestions: make a cube, move it forward/back when up/down is pressed, rotate left/right when left/right is pressed... get this working first! (basics of the movement), have the camera follow this object... now, hide the object!... make another cube (or sphere, cube easier to test functionality), set up the rotation of this object for how the hidden cube is moving, then move this object to the same position as the first cube... what this all will do (when set up correctly) will move the object forward and rotate forward when the upkey is pressed, and when left/right is pressed will rotate the object (keeping it on a single plain) and roll the object for visual appearance only!...
with the code you have now... when you start putting in movement... the cube will act as a spaceship would... moving freely in a 3D space... and if you put it on a flat surface... it will mess up BIG time!
==Main Computer==
Athlon XP 3000+, 1024mb, Radeon 9800 Pro 128mb 8xAGP, XP Pro