Index: src/Concurrency/Keywords.cc
===================================================================
--- src/Concurrency/Keywords.cc	(revision 102a58b77bb744015a557bbe3dbad51e39e3965f)
+++ src/Concurrency/Keywords.cc	(revision 7b6ca2e67dfc28fe0673afb07a368d389f5318d5)
@@ -65,5 +65,5 @@
 		FunctionDecl * forwardDeclare( StructDecl * );
 		ObjectDecl * addField( StructDecl * );
-		void addRoutines( StructDecl *, ObjectDecl *, FunctionDecl * );
+		void addRoutines( ObjectDecl *, FunctionDecl * );
 
 		virtual bool is_target( StructDecl * decl ) = 0;
@@ -247,5 +247,5 @@
 	void ConcurrentSueKeyword::visit(StructDecl * decl) {
 		Visitor::visit(decl);
-		if( decl->get_name() == type_name ) {
+		if( decl->get_name() == type_name && decl->has_body() ) {
 			assert( !type_decl );
 			type_decl = decl;
@@ -264,5 +264,5 @@
 		FunctionDecl * func = forwardDeclare( decl );
 		ObjectDecl * field = addField( decl );
-		addRoutines( decl, field, func );
+		addRoutines( field, func );
 	}
 
@@ -359,5 +359,5 @@
 	}
 
-	void ConcurrentSueKeyword::addRoutines( StructDecl * decl, ObjectDecl * field, FunctionDecl * func ) {
+	void ConcurrentSueKeyword::addRoutines( ObjectDecl * field, FunctionDecl * func ) {
 		CompoundStmt * statement = new CompoundStmt( noLabels );
 		statement->push_back( 
