Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision 02e5ab617410cc0bcf5ec7f06346d0a740096d7c)
+++ src/SymTab/Validate.cc	(revision d8847b7e0bcf675a467161ab62fbe142bb2d4e95)
@@ -629,4 +629,10 @@
 	Declaration *makeStructAssignment( StructDecl *aggregateDecl, StructInstType *refType, unsigned int functionNesting ) {
 		FunctionType *assignType = new FunctionType( Type::Qualifiers(), false );
+
+		// Make function polymorphic in same parameters as generic struct, if applicable
+		std::list< TypeDecl* >& genericParams = aggregateDecl->get_parameters();
+		for ( std::list< TypeDecl* >::const_iterator param = genericParams.begin(); param != genericParams.end(); ++param ) {
+			assignType->get_forall().push_back( (*param)->clone() );
+		}
   
 		ObjectDecl *returnVal = new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, refType->clone(), 0 );
