Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision 04cdd9b5929496a9d5ff3a09e77200621001ed5a)
+++ src/SymTab/Validate.cc	(revision 6d665d93945a1e5430c7982fa468a2af88596f06)
@@ -58,4 +58,5 @@
 #include "Autogen.h"
 #include "ResolvExpr/typeops.h"
+#include <algorithm>
 
 #define debugPrint( x ) if ( doDebug ) { std::cout << x; }
@@ -372,5 +373,9 @@
 		} // if
 
-		applySubstitution( ctx->get_parameters().begin(), ctx->get_parameters().end(), contextInst->get_parameters().begin(), ctx->get_members().begin(), ctx->get_members().end(), back_inserter( contextInst->get_members() ) );
+		// need to clone members of the context for ownership purposes
+		std::list< Declaration * > members;
+		std::transform( ctx->get_members().begin(), ctx->get_members().end(), back_inserter( members ), [](Declaration * dwt) { return dwt->clone(); } );
+
+		applySubstitution( ctx->get_parameters().begin(), ctx->get_parameters().end(), contextInst->get_parameters().begin(), members.begin(), members.end(), back_inserter( contextInst->get_members() ) );
 	}
 
