Index: src/ResolvExpr/Resolver.cc
===================================================================
--- src/ResolvExpr/Resolver.cc	(revision 68fe077a5764a46debddf5a5dc89ef3614748ccd)
+++ src/ResolvExpr/Resolver.cc	(revision 1fbab5a0107bc631a52826378ed50c1187d6284c)
@@ -240,4 +240,16 @@
 		functionReturn = ResolvExpr::extractResultType( functionDecl->get_functionType() );
 		Parent::visit( functionDecl );
+
+		// default value expressions have an environment which shouldn't be there and trips up later passes.
+		// xxx - it might be necessary to somehow keep the information from this environment, but I can't currently
+		// see how it's useful.
+		for ( Declaration * d : functionDecl->get_functionType()->get_parameters() ) {
+			if ( ObjectDecl * obj = dynamic_cast< ObjectDecl * >( d ) ) {
+				if ( SingleInit * init = dynamic_cast< SingleInit * >( obj->get_init() ) ) {
+					delete init->get_value()->get_env();
+					init->get_value()->set_env( nullptr );
+				}
+			}
+		}
 	}
 
