Here's an updated patch.
I haven't added commentary or documentation to account for the new
assumption, per Matthias' comment and Robert's discussion thereof.
--
Álvaro Herrera 39°49'30"S 73°17'W
"Cada quien es cada cual y baja las escaleras como quiere" (JMSerrat)