Index: src/Parser/ExpressionNode.cc
===================================================================
--- src/Parser/ExpressionNode.cc	(revision 72457b65c73513644edb66220ea59615184e9003)
+++ src/Parser/ExpressionNode.cc	(revision 2edd80ae7bb41eee0783cfcc80573f533b6ee760)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 13:17:07 2015
 // Last Modified By : Andrew Beach
-// Last Modified On : Tus Jul 18 10:08:00 2017
-// Update Count     : 550
+// Last Modified On : Tus Jul 25 10:11:00 2017
+// Update Count     : 551
 //
 
@@ -252,4 +252,11 @@
 }
 
+
+Expression *build_virtual_cast( DeclarationNode *decl_node, ExpressionNode *expr_node ) {
+	Type *targetType = maybeMoveBuildType( decl_node );
+	Expression *castArg = maybeMoveBuild< Expression >( expr_node );
+	return new VirtualCastExpr( castArg, targetType );
+}
+
 Expression *build_fieldSel( ExpressionNode *expr_node, Expression *member ) {
 	UntypedMemberExpr *ret = new UntypedMemberExpr( member, maybeMoveBuild< Expression >(expr_node) );
Index: src/Parser/ParseNode.h
===================================================================
--- src/Parser/ParseNode.h	(revision 72457b65c73513644edb66220ea59615184e9003)
+++ src/Parser/ParseNode.h	(revision 2edd80ae7bb41eee0783cfcc80573f533b6ee760)
@@ -9,7 +9,7 @@
 // Author           : Rodolfo G. Esteves
 // Created On       : Sat May 16 13:28:16 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jul 22 09:32:30 2017
-// Update Count     : 786
+// Last Modified By : Andrew Beach
+// Last Modified On : Tus Jul 25 10:09:00 2017
+// Update Count     : 787
 //
 
@@ -170,4 +170,5 @@
 
 Expression * build_cast( DeclarationNode * decl_node, ExpressionNode * expr_node );
+Expression * build_virtual_cast( DeclarationNode * decl_node, ExpressionNode * expr_node );
 Expression * build_fieldSel( ExpressionNode * expr_node, Expression * member );
 Expression * build_pfieldSel( ExpressionNode * expr_node, Expression * member );
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 72457b65c73513644edb66220ea59615184e9003)
+++ src/Parser/parser.yy	(revision 2edd80ae7bb41eee0783cfcc80573f533b6ee760)
@@ -9,7 +9,7 @@
 // Author           : Peter A. Buhr
 // Created On       : Sat Sep  1 20:22:55 2001
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jul 24 09:01:14 2017
-// Update Count     : 2463
+// Last Modified By : Andrew Beach
+// Last Modified On : Tus Jul 25 10:07:00 2017
+// Update Count     : 2464
 //
 
@@ -573,7 +573,7 @@
 		// VIRTUAL cannot be opt because of look ahead issues
 	| '(' VIRTUAL ')' cast_expression
-		{ $$ = new ExpressionNode( build_cast( nullptr, $4 ) ); }
+		{ $$ = new ExpressionNode( build_virtual_cast( nullptr, $4 ) ); }
 	| '(' VIRTUAL type_no_function ')' cast_expression
-		{ $$ = new ExpressionNode( build_cast( $3, $5 ) ); }
+		{ $$ = new ExpressionNode( build_virtual_cast( $3, $5 ) ); }
 //	| '(' type_no_function ')' tuple
 //		{ $$ = new ExpressionNode( build_cast( $2, $4 ) ); }
