Work on bug #8298.  This is the basic structure.