Index: src/Common/PassVisitor.impl.h
===================================================================
--- src/Common/PassVisitor.impl.h	(revision bc6f9183d7f12eaeee38caea9daf1b32b27f002a)
+++ src/Common/PassVisitor.impl.h	(revision 33c0ce8ea59f555c7013250c31cf64cd8d8a8d99)
@@ -889,10 +889,12 @@
 template< typename pass_type >
 void PassVisitor< pass_type >::visit( BranchStmt * node ) {
-	VISIT_BODY( node );
+	VISIT_START( node );
+	VISIT_END( node );
 }
 
 template< typename pass_type >
 Statement * PassVisitor< pass_type >::mutate( BranchStmt * node ) {
-	MUTATE_BODY( Statement, node );
+	MUTATE_START( node );
+	MUTATE_END( Statement, node );
 }
 
@@ -922,10 +924,20 @@
 template< typename pass_type >
 void PassVisitor< pass_type >::visit( ThrowStmt * node ) {
-	VISIT_BODY( node );
+	VISIT_START( node );
+
+	maybeAccept_impl( node->expr, *this );
+	maybeAccept_impl( node->target, *this );
+
+	VISIT_END( node );
 }
 
 template< typename pass_type >
 Statement * PassVisitor< pass_type >::mutate( ThrowStmt * node ) {
-	MUTATE_BODY( Statement, node );
+	MUTATE_START( node );
+
+	maybeMutate_impl( node->expr, *this );
+	maybeMutate_impl( node->target, *this );
+
+	MUTATE_END( Statement, node );
 }
 
