Index: src/GenPoly/Lvalue.cc
===================================================================
--- src/GenPoly/Lvalue.cc	(revision 099e2025b1e00917bd8d81623acee49e2eb3ea04)
+++ src/GenPoly/Lvalue.cc	(revision c1ec14f5fd75a4980c439c4260b080871fa4c704)
@@ -166,6 +166,6 @@
 			if ( isIntrinsicReference( appExpr ) ) {
 				// eliminate reference types from intrinsic applications - now they return lvalues
-				Type * result = appExpr->result;
-				appExpr->result = result->stripReferences()->clone();
+				ReferenceType * result = strict_dynamic_cast< ReferenceType * >( appExpr->result );
+				appExpr->result = result->base->clone();
 				appExpr->result->set_lvalue( true );
 				if ( ! inIntrinsic ) {
@@ -183,5 +183,5 @@
 		void FixIntrinsicResult::premutate( FunctionDecl * funcDecl ) {
 			GuardValue( inIntrinsic );
-			inIntrinsic =  funcDecl->linkage == LinkageSpec::Intrinsic;
+			inIntrinsic = funcDecl->linkage == LinkageSpec::Intrinsic;
 		}
 
