Merged r46508 (bug fixes), r53790 (added test case), r62605 (fix for #3581), r62606 (fix for #3820), r62607 (fix for #3989), r62609 (missing header), r62963 (non-Trac bug fixes) from trunk; refs #3581, #3820, #3989