Index: src/SynTree/Statement.cc
===================================================================
--- src/SynTree/Statement.cc	(revision bd46af4995cdaf5adc29d05800859499c62eb0fd)
+++ src/SynTree/Statement.cc	(revision 406a6e6572d4e113abe2d115a3d9521a56db6ea2)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Andrew Beach
-// Last Modified On : Mon Jun 12 10:37:00 2017
-// Update Count     : 64
+// Last Modified On : Mon Aug 14 12:26:00 2017
+// Update Count     : 65
 //
 
@@ -329,15 +329,18 @@
 void TryStmt::print( std::ostream &os, int indent ) const {
 	os << "Try Statement" << endl;
-	os << string( indent + 2, ' ' ) << "with block: " << endl;
+	os << string( indent + 2, ' ' ) << "with block:" << endl;
+	os << string( indent + 4, ' ' );
 	block->print( os, indent + 4 );
 
 	// handlers
-	os << string( indent + 2, ' ' ) << "and handlers: " << endl;
-	for ( std::list<CatchStmt *>::const_iterator i = handlers.begin(); i != handlers.end(); i++)
+	os << string( indent + 2, ' ' ) << "and handlers:" << endl;
+	for ( std::list<CatchStmt *>::const_iterator i = handlers.begin(); i != handlers.end(); i++) {
+		os << string( indent + 4, ' ' );
 		(*i )->print( os, indent + 4 );
+	}
 
 	// finally block
 	if ( finallyBlock != 0 ) {
-		os << string( indent + 2, ' ' ) << "Finally block: " << endl;
+		os << string( indent + 2, ' ' ) << "and finally:" << endl;
 		finallyBlock->print( os, indent + 4 );
 	} // if
@@ -360,5 +363,5 @@
 	os << "Catch " << ((Terminate == kind) ? "Terminate" : "Resume") << " Statement" << endl;
 
-	os << string( indent, ' ' ) << "... catching" << endl;
+	os << string( indent + 2, ' ' ) << "... catching: ";
 	if ( decl ) {
 		decl->printShort( os, indent + 4 );
@@ -367,4 +370,16 @@
 	else
 		os << string( indent + 4 , ' ' ) << ">>> Error:  this catch clause must have a declaration <<<" << endl;
+
+	if ( cond ) {
+		os << string( indent + 2, ' ' ) << "with conditional:" << endl;
+		os << string( indent + 4, ' ' );
+		cond->print( os, indent + 4 );
+	}
+	else
+		os << string( indent + 2, ' ' ) << "with no conditional" << endl;
+
+	os << string( indent + 2, ' ' ) << "with block:" << endl;
+	os << string( indent + 4, ' ' );
+	body->print( os, indent + 4 );
 }
 
@@ -383,5 +398,6 @@
 void FinallyStmt::print( std::ostream &os, int indent ) const {
 	os << "Finally Statement" << endl;
-	os << string( indent + 2, ' ' ) << "with block: " << endl;
+	os << string( indent + 2, ' ' ) << "with block:" << endl;
+	os << string( indent + 4, ' ' );
 	block->print( os, indent + 4 );
 }
Index: src/tests/except-2.c
===================================================================
--- src/tests/except-2.c	(revision bd46af4995cdaf5adc29d05800859499c62eb0fd)
+++ src/tests/except-2.c	(revision 406a6e6572d4e113abe2d115a3d9521a56db6ea2)
@@ -5,11 +5,13 @@
 
 // Local Exception Types and manual vtable types.
+#define GLUE2(left, right) left##right
+#define GLUE3(left, middle, right) left##middle##right
 #define BASE_EXCEPT __cfaehm__base_exception_t
-#define TABLE(name) name##_vtable
-#define INSTANCE(name) _##name##_vtable_instance
+#define TABLE(name) GLUE2(name,_vtable)
+#define INSTANCE(name) GLUE3(_,name,_vtable_instance)
 #define TRIVIAL_EXCEPTION(name) \
 struct name; \
 struct TABLE(name) { \
-	struct __cfaehm__base_exception_t_vtable const * parent; \
+	struct TABLE(BASE_EXCEPT) const * parent; \
 	size_t size; \
 	void (*copy)(name *this, name * other); \
@@ -28,5 +30,5 @@
 } \
 TABLE(name) INSTANCE(name) @= { \
-	.parent : &INSTANCE(__cfaehm__base_exception_t), \
+	.parent : &INSTANCE(BASE_EXCEPT), \
 	.size : sizeof(name), .copy : name##_copy, \
 	.free : ^?{}, .msg : name##_msg \
@@ -40,5 +42,5 @@
 struct num_error;
 struct num_error_vtable {
-	struct exception_t_vtable const * parent;
+	struct TABLE(BASE_EXCEPT) const * parent;
 	size_t size;
 	void (*copy)(num_error *this, num_error * other);
@@ -62,5 +64,5 @@
 }
 void ?{}(num_error * this, int num) {
-	this->virtual_table = &_num_error_vtable_instance;
+	this->virtual_table = &INSTANCE(num_error);
 	this->msg = 0;
 	this->num = num;
