Index: src/ResolvExpr/Resolver.cc
===================================================================
--- src/ResolvExpr/Resolver.cc	(revision a7c90d4d68e0538c8215b52b958e12c56980c401)
+++ src/ResolvExpr/Resolver.cc	(revision 88d10665a73cc1147514e3cef6b77373df740153)
@@ -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 );
+				}
+			}
+		}
 	}
 
