Index: src/GenPoly/GenPoly.cc
===================================================================
--- src/GenPoly/GenPoly.cc	(revision 677c1be0989eb8e5ed859540a0550f1788df1234)
+++ src/GenPoly/GenPoly.cc	(revision 83de11e2c4f6a0d223380e66486b62c64ffebaf9)
@@ -64,5 +64,5 @@
 			return false;
 		}
-		
+
 		/// Replaces a TypeInstType by its referrent in the environment, if applicable
 		Type* replaceTypeInst( Type* type, const TypeSubstitution* env ) {
@@ -78,5 +78,5 @@
 	Type *isPolyType( Type *type, const TypeSubstitution *env ) {
 		type = replaceTypeInst( type, env );
-		
+
 		if ( TypeInstType *typeInst = dynamic_cast< TypeInstType * >( type ) ) {
 			return type;
@@ -91,5 +91,5 @@
 	Type *isPolyType( Type *type, const TyVarMap &tyVars, const TypeSubstitution *env ) {
 		type = replaceTypeInst( type, env );
-		
+
 		if ( TypeInstType *typeInst = dynamic_cast< TypeInstType * >( type ) ) {
 			if ( tyVars.find( typeInst->get_name() ) != tyVars.end() ) {
@@ -106,5 +106,5 @@
 	Type *isPolyPtr( Type *type, const TypeSubstitution *env ) {
 		type = replaceTypeInst( type, env );
-		
+
 		if ( PointerType *ptr = dynamic_cast< PointerType *>( type ) ) {
 			return isPolyType( ptr->get_base(), env );
@@ -115,5 +115,5 @@
 	Type *isPolyPtr( Type *type, const TyVarMap &tyVars, const TypeSubstitution *env ) {
 		type = replaceTypeInst( type, env );
-		
+
 		if ( PointerType *ptr = dynamic_cast< PointerType *>( type ) ) {
 			return isPolyType( ptr->get_base(), tyVars, env );
@@ -129,5 +129,5 @@
 		while ( true ) {
 			type = replaceTypeInst( type, env );
-		
+
 			if ( PointerType *ptr = dynamic_cast< PointerType *>( type ) ) {
 				type = ptr->get_base();
@@ -146,5 +146,5 @@
 		while ( true ) {
 			type = replaceTypeInst( type, env );
-		
+
 			if ( PointerType *ptr = dynamic_cast< PointerType *>( type ) ) {
 				type = ptr->get_base();
Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision 677c1be0989eb8e5ed859540a0550f1788df1234)
+++ src/SymTab/Validate.cc	(revision 83de11e2c4f6a0d223380e66486b62c64ffebaf9)
@@ -291,16 +291,18 @@
 
 	namespace {
-		template< typename DWTIterator >
-		void fixFunctionList( DWTIterator begin, DWTIterator end, FunctionType *func ) {
+		template< typename DWTList >
+		void fixFunctionList( DWTList & dwts, FunctionType * func ) {
 			// the only case in which "void" is valid is where it is the only one in the list; then it should be removed
 			// entirely other fix ups are handled by the FixFunction class
+			typedef typename DWTList::iterator DWTIterator;
+			DWTIterator begin( dwts.begin() ), end( dwts.end() );
 			if ( begin == end ) return;
 			FixFunction fixer;
 			DWTIterator i = begin;
-			*i = (*i )->acceptMutator( fixer );
+			*i = (*i)->acceptMutator( fixer );
 			if ( fixer.get_isVoid() ) {
 				DWTIterator j = i;
 				++i;
-				func->get_parameters().erase( j );
+				dwts.erase( j );
 				if ( i != end ) {
 					throw SemanticError( "invalid type void in function type ", func );
@@ -321,6 +323,6 @@
 	void Pass1::visit( FunctionType *func ) {
 		// Fix up parameters and return types
-		fixFunctionList( func->get_parameters().begin(), func->get_parameters().end(), func );
-		fixFunctionList( func->get_returnVals().begin(), func->get_returnVals().end(), func );
+		fixFunctionList( func->get_parameters(), func );
+		fixFunctionList( func->get_returnVals(), func );
 		Visitor::visit( func );
 	}
