Orthogonal and isospectral flows occur in many applications and they possess important invariants. However, a naive application of Runge-Kutta methods is bound to render these invariants incorrectly. In this paper we describe how to retain relevant invariants with Runge-Kutta methods or, alternatively, incur an error in the rendition of the invariants which is significantly smaller than the overall numerical error.