Index: src/ResolvExpr/AlternativeFinder.cc
===================================================================
--- src/ResolvExpr/AlternativeFinder.cc	(revision 7b3f66b14854533532aad4d0484874f36d0fa385)
+++ src/ResolvExpr/AlternativeFinder.cc	(revision 70f89d00f25700f0fc226d5210840f0199c6d9f0)
@@ -39,4 +39,5 @@
 #include "Tuples/NameMatcher.h"
 #include "Common/utility.h"
+#include "InitTweak/InitTweak.h"
 
 extern bool resolvep;
@@ -546,7 +547,6 @@
 
 		{
-			NameExpr *fname = 0;;
-			if ( ( fname = dynamic_cast<NameExpr *>( untypedExpr->get_function()))
-				 && ( fname->get_name() == std::string("&&")) ) {
+			std::string fname = InitTweak::getFunctionName( untypedExpr );
+			if ( fname == "&&" ) {
 				VoidType v = Type::Qualifiers();		// resolve to type void *
 				PointerType pt( Type::Qualifiers(), v.clone() );
Index: src/ResolvExpr/Resolver.cc
===================================================================
--- src/ResolvExpr/Resolver.cc	(revision 7b3f66b14854533532aad4d0484874f36d0fa385)
+++ src/ResolvExpr/Resolver.cc	(revision 70f89d00f25700f0fc226d5210840f0199c6d9f0)
@@ -492,8 +492,13 @@
 		} catch ( SemanticError ) {
 			// no alternatives for the constructor initializer - fallback on C-style initializer
-			// xxx- not sure if this makes a ton of sense - should maybe never be able to have this situation?
+			// xxx - not sure if this makes a ton of sense - should maybe never be able to have this situation?
+
+			// reset type qualifiers
+			ctorInit->get_object()->get_type()->get_qualifiers() = ctorInit->get_qualifiers();
 			fallbackInit( ctorInit );
 			return;
 		}
+		// reset type qualifiers
+		ctorInit->get_object()->get_type()->get_qualifiers() = ctorInit->get_qualifiers();
 
 		// found a constructor - can get rid of C-style initializer
