Index: src/GenPoly/Lvalue.cc
===================================================================
--- src/GenPoly/Lvalue.cc	(revision 682dcae3ba54d09eec8ad00203e59ee89c718ea9)
+++ src/GenPoly/Lvalue.cc	(revision 8638cef5fe8d544c121589148f7aae119e60973d)
@@ -403,5 +403,5 @@
 					ret = new AddressExpr( ret );
 				}
-				if ( srcType->get_lvalue() && srcType->get_qualifiers() != strict_dynamic_cast<ReferenceType *>( destType )->base->get_qualifiers() ) {
+				if ( srcType->get_lvalue() && ! ResolvExpr::typesCompatible( srcType, strict_dynamic_cast<ReferenceType *>( destType )->base, SymTab::Indexer() ) ) {
 					// must keep cast if cast-to type is different from the actual type
 					castExpr->arg = ret;
