refs #t11750, merge and refine work from ssimpo