Merge branch 'bug5566' into csnover-bug5566. Fixes #4386, #5566, #6997.