Squashed commit of the following:

commit b35f0539780bfdf81375505f1974b433921c67e7
Author: Will Szumski <will@cowboycoders.org>
Date:   Wed Jul 31 17:09:59 2013 +0100

    make exceptions hierarchical