Reimplement ^P.  Closes #311.