Index: src/ResolvExpr/AlternativeFinder.cc
===================================================================
--- src/ResolvExpr/AlternativeFinder.cc	(revision 4a9ccc35f7b5fed64bf53eee245fc9caa37f687d)
+++ src/ResolvExpr/AlternativeFinder.cc	(revision dbe8f244d5ddc4656e04f6da8db1d7f072f437bf)
@@ -403,14 +403,15 @@
 			// End of actuals - Handle default values
 			if ( SingleInit *si = dynamic_cast<SingleInit *>( defaultValue )) {
-				// so far, only constant expressions are accepted as default values
-				if ( ConstantExpr *cnstexpr = dynamic_cast<ConstantExpr *>( si->get_value()) ) {
-					if ( Constant *cnst = dynamic_cast<Constant *>( cnstexpr->get_constant() ) ) {
-						if ( unify( formalType, cnst->get_type(), resultEnv, resultNeed, resultHave, openVars, indexer ) ) {
-							// xxx - Don't know if this is right
-							*out++ = cnstexpr->clone();
-							return true;
+				if ( CastExpr * castExpr = dynamic_cast< CastExpr * >( si->get_value() ) ) {
+					// so far, only constant expressions are accepted as default values
+					if ( ConstantExpr *cnstexpr = dynamic_cast<ConstantExpr *>( castExpr->get_arg() ) ) {
+						if ( Constant *cnst = dynamic_cast<Constant *>( cnstexpr->get_constant() ) ) {
+							if ( unify( formalType, cnst->get_type(), resultEnv, resultNeed, resultHave, openVars, indexer ) ) {
+								*out++ = cnstexpr->clone();
+								return true;
+							} // if
 						} // if
 					} // if
-				} // if
+				}
 			} // if
 			return false;
