Work on bug #8003.  I need to do more work, this is just a start.