Re-rolled patch #16, attached interdiff for same.