Index: src/ResolvExpr/AlternativeFinder.cc
===================================================================
--- src/ResolvExpr/AlternativeFinder.cc	(revision 2a6c11538c985073491173df0fbbc1adc2fdb62b)
+++ src/ResolvExpr/AlternativeFinder.cc	(revision 0f798534e5e22d73c97f4df465f395acdb91f398)
@@ -437,4 +437,11 @@
 				}
 			}
+			if ( DefaultArgExpr * def = dynamic_cast< DefaultArgExpr * >( *actualExpr ) ) {
+				// default arguments should be free - don't include conversion cost.
+				// Unwrap them here because they are not relevant to the rest of the system.
+				*actualExpr = def->expr;
+				++formal;
+				continue;
+			}
 			Type * formalType = (*formal)->get_type();
 			convCost += computeExpressionConversionCost( *actualExpr, formalType, indexer, alt.env );
@@ -872,5 +879,5 @@
 								indexer ) ) {
 							results.emplace_back(
-								i, cnstExpr, move(env), move(need), move(have),
+								i, new DefaultArgExpr( cnstExpr ), move(env), move(need), move(have),
 								move(openVars), nextArg, nTuples );
 						}
