Index: src/AST/Expr.hpp
===================================================================
--- src/AST/Expr.hpp	(revision 4a359e27328989a7e80d0af8bd15c0f8bbebf42b)
+++ src/AST/Expr.hpp	(revision bb87dd060ba10687cd7993c1a11ded9b3eb67786)
@@ -299,5 +299,13 @@
 };
 
-/// Whether a cast existed in the program source or not
+/// Inidicates whether the cast is introduced by the CFA type system.
+/// GeneratedCast for casts that the resolver introduces to force a return type
+/// ExplicitCast for casts from user code
+/// ExplicitCast for casts from desugaring advanced CFA features into simpler CFA
+/// example
+///   int * p;     // declaration
+///   (float *) p; // use, with subject cast
+/// subject cast being GeneratedCast means we are considering an interpretation with a type mismatch
+/// subject cast being ExplicitCast means someone in charge wants it that way
 enum GeneratedFlag { ExplicitCast, GeneratedCast };
 
Index: src/ResolvExpr/CandidateFinder.cpp
===================================================================
--- src/ResolvExpr/CandidateFinder.cpp	(revision 4a359e27328989a7e80d0af8bd15c0f8bbebf42b)
+++ src/ResolvExpr/CandidateFinder.cpp	(revision bb87dd060ba10687cd7993c1a11ded9b3eb67786)
@@ -1066,6 +1066,9 @@
 				// unification run for side-effects
 				unify( toType, cand->expr->result, cand->env, need, have, open, symtab );
-				Cost thisCost = castCost( cand->expr->result, toType, cand->expr->get_lvalue(),
-						symtab, cand->env );
+				Cost thisCost = 
+					(castExpr->isGenerated == ast::GeneratedFlag::GeneratedCast)
+ 	                    ? conversionCost( cand->expr->result, toType, cand->expr->get_lvalue(), symtab, cand->env )
+ 	                    : castCost( cand->expr->result, toType, cand->expr->get_lvalue(), symtab, cand->env );
+
 				PRINT(
 					std::cerr << "working on cast with result: " << toType << std::endl;
@@ -1543,8 +1546,19 @@
 
 					// unification run for side-effects
-					unify( toType, cand->expr->result, env, need, have, open, symtab );
+					bool canUnify = unify( toType, cand->expr->result, env, need, have, open, symtab );
+                    (void) canUnify;
 					Cost thisCost = computeConversionCost( cand->expr->result, toType, cand->expr->get_lvalue(),
+						symtab, env );
+					PRINT(
+						Cost legacyCost = castCost( cand->expr->result, toType, cand->expr->get_lvalue(),
 							symtab, env );
-
+						std::cerr << "Considering initialization:";
+						std::cerr << std::endl << "  FROM: " << cand->expr->result << std::endl;
+						std::cerr << std::endl << "  TO: "   << toType             << std::endl;
+						std::cerr << std::endl << "  Unification " << (canUnify ? "succeeded" : "failed");
+						std::cerr << std::endl << "  Legacy cost " << legacyCost;
+						std::cerr << std::endl << "  New cost " << thisCost;
+						std::cerr << std::endl;
+					)
 					if ( thisCost != Cost::infinity ) {
 						// count one safe conversion for each value that is thrown away
Index: tests/.expect/init1-ERROR.nast.txt
===================================================================
--- tests/.expect/init1-ERROR.nast.txt	(revision 4a359e27328989a7e80d0af8bd15c0f8bbebf42b)
+++ tests/.expect/init1-ERROR.nast.txt	(revision bb87dd060ba10687cd7993c1a11ded9b3eb67786)
@@ -7,5 +7,5 @@
 init1.cfa:61:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
   Name: cpx  InitAlternative: pointer to float
-init1.cfa:104:1 error: No reasonable alternatives for expression Generated Cast of:
+init1.cfa:104:1 error: Invalid application of existing declaration(s) in expression Generated Cast of:
   Name: rx
 ... to:
@@ -20,5 +20,5 @@
   Name: px
 
-init1.cfa:114:1 error: No reasonable alternatives for expression Generated Cast of:
+init1.cfa:114:1 error: Invalid application of existing declaration(s) in expression Generated Cast of:
   Name: crx
 ... to:
@@ -33,5 +33,5 @@
   Name: cpx
 
-init1.cfa:124:1 error: No reasonable alternatives for expression Generated Cast of:
+init1.cfa:124:1 error: Invalid application of existing declaration(s) in expression Generated Cast of:
   Name: s
 ... to:
