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 );
 	}
