Camera Rotation Problem

I am attempting to create a 3d game from scratch; and in my effort, I have come across a slight problem with my Camera.

Camera rotation is defined with [icode]Quaternion rotation[/icode]. The quaternion is rotated around the up and right vectors of the camera using delta mouse position as the angle. A rotation matrix is created and multiplied to a projection matrix for the final MVP.

The problem is that the camera is not rotating around itself. I don’t know what it’s rotating around, but the object never leaves the view. Instead, it just folds over the edge and comes back (probably a result of sin and cos in the quaternion rotation).

Here is a video demonstrating the problem:

RXWv2YC-rxs

Here is the [icode]Camera[/icode] class: http://pastebin.java-gaming.org/3cac7586f0b12
Here is the [icode]Quaternion[/icode] class: http://pastebin.java-gaming.org/cac786f6b0213
Here is the [icode]Quaternion[/icode] to [icode]Matrix4f[/icode] conversion: http://pastebin.java-gaming.org/ac78f7b620310
(Sorry for the formatting problems)

I am using this page for Quaternion reference and math: http://www.cprogramming.com/tutorial/3d/quaternions.html