Re-rolled patch #35. Attached interdiff for same.