Refactor, plus fix Trac #4418