Index: src/Concurrency/KeywordsNew.cpp
===================================================================
--- src/Concurrency/KeywordsNew.cpp	(revision ed1a7ab8babf65826fb085e41a42100228000b33)
+++ src/Concurrency/KeywordsNew.cpp	(revision b2ecd4801c2bbbcda494bff1458244b61abd1662)
@@ -534,8 +534,11 @@
 void ConcurrentSueKeyword::addGetRoutines(
 		const ast::ObjectDecl * field, const ast::FunctionDecl * forward ) {
+	// Clone the signature and then build the body.
+	ast::FunctionDecl * decl = ast::deepCopy( forward );
+
 	// Say it is generated at the "same" places as the forward declaration.
-	const CodeLocation & location = forward->location;
-
-	const ast::DeclWithType * param = forward->params.front();
+	const CodeLocation & location = decl->location;
+
+	const ast::DeclWithType * param = decl->params.front();
 	ast::Stmt * stmt = new ast::ReturnStmt( location,
 		new ast::AddressExpr( location,
@@ -551,5 +554,4 @@
 	);
 
-	ast::FunctionDecl * decl = ast::deepCopy( forward );
 	decl->stmts = new ast::CompoundStmt( location, { stmt } );
 	declsToAddAfter.push_back( decl );
