Index: src/GenPoly/Box.cc
===================================================================
--- src/GenPoly/Box.cc	(revision 421edab1bdb7fa75f18e1afc4cd938f55f13d710)
+++ src/GenPoly/Box.cc	(revision 567bb17400a3658779a3781ade2c0676eaa956c4)
@@ -1317,5 +1317,6 @@
 			if ( decl == baseDecls.end() ) return memberExpr;
 
-			// replace member expression with dereference of pointer offset
+			// replace member expression with pointer to base plus offset
+			// this is in a polymorphic context, so maybe keeping it as a void* is fine?
 			std::stringstream offset_namer;
 			offset_namer << i;
@@ -1327,10 +1328,8 @@
 			fieldLoc->get_args().push_back( memberExpr->get_aggregate() );
 			fieldLoc->get_args().push_back( fieldOffset );
-			UntypedExpr *ret = new UntypedExpr( new NameExpr( "*?" ) );
-			ret->get_args().push_back( fieldLoc );
 
 			memberExpr->set_aggregate( 0 );
 			delete memberExpr;
-			return ret;
+			return fieldLoc;
 		}
 
