Feature Complete for #435.

This feels a bit like a hack really, though it is providing some useful
additional error reporting.  The basic problem is that the system is not
well designed to support error messages with context.