Re-rolled patch #3, added interdiff for same. Please review.