Index: src/Concurrency/Keywords.cc
===================================================================
--- src/Concurrency/Keywords.cc	(revision 9a705dc89354e53ad54ff8ee372e6cc20c210e1e)
+++ src/Concurrency/Keywords.cc	(revision 1cdfa82ab4efb64ed6273f4e8e3993bc8895a419)
@@ -19,4 +19,5 @@
 #include <string>                  // for string, operator==
 
+#include "Common/GC.h"             // for new_static_root
 #include "Common/PassVisitor.h"    // for PassVisitor
 #include "Common/SemanticError.h"  // for SemanticError
@@ -206,13 +207,8 @@
 		StructDecl* dtor_guard_decl = nullptr;
 
-		static std::unique_ptr< Type > generic_func;
+		static Type* generic_func;
 	};
 
-	std::unique_ptr< Type > MutexKeyword::generic_func = std::unique_ptr< Type >(
-		new FunctionType(
-			noQualifiers,
-			true
-		)
-	);
+	Type* MutexKeyword::generic_func = new_static_root<FunctionType>( noQualifiers, true );
 
 	//-----------------------------------------------------------------------------
@@ -318,5 +314,4 @@
 		StructDecl * forward = decl->clone();
 		forward->set_body( false );
-		deleteAll( forward->get_members() );
 		forward->get_members().clear();
 
@@ -382,6 +377,4 @@
 			fixupGenerics(main_type, decl);
 		}
-
-		delete this_decl;
 
 		declsToAddBefore.push_back( forward );
Index: src/Concurrency/Waitfor.cc
===================================================================
--- src/Concurrency/Waitfor.cc	(revision 9a705dc89354e53ad54ff8ee372e6cc20c210e1e)
+++ src/Concurrency/Waitfor.cc	(revision 1cdfa82ab4efb64ed6273f4e8e3993bc8895a419)
@@ -137,6 +137,4 @@
 		StructDecl          * decl_acceptable = nullptr;
 		StructDecl          * decl_monitor    = nullptr;
-
-		static std::unique_ptr< Type > generic_func;
 
 		UniqueName namer_acc = "__acceptables_"s;
@@ -476,6 +474,4 @@
 		}
 
-		delete setter;
-
 		return new VariableExpr( timeout );
 	}
