We present an analytic calculation of the O(m alpha^6) recoil
and radiative recoil corrections to energy levels of positronium
nS states and their hyperfine splitting. A complete analytic formula
valid to O(m alpha^6) is given for the spectrum of S states.
Technical aspects of the calculation are discussed in detail.
Theoretical predictions are given for various energy intervals
and compared with experimental results.