Note to self: If everything goes well, this line should never be called. I'll need to find out if it's really needed.
(It's dangerous because `str` has a different meaning in p2 vs p3).