Re-rolled patch #28, Attached interdiff for same. Please review.