Index: src/Virtual/VirtualDtor.cpp
===================================================================
--- src/Virtual/VirtualDtor.cpp	(revision bccd70a18277379d29bc911ade6a08acf9c36dbd)
+++ src/Virtual/VirtualDtor.cpp	(revision 8d6786bfc199bb439f5dd3e59d381e5a8e28f47a)
@@ -146,16 +146,18 @@
 
             CompoundStmt * dtorBody = mutate( decl->stmts.get() );
-            // Adds the following to the end of any actor/message dtor:
+            // Adds the following to the start of any actor/message dtor:
             //  __CFA_dtor_shutdown( this );
-            dtorBody->push_front( new ExprStmt(
-                decl->location,
-				new UntypedExpr (
-                    decl->location,
-					new NameExpr( decl->location, "__CFA_dtor_shutdown" ),
-					{
-                        new NameExpr( decl->location, decl->params.at(0)->name )
-					}
-				)
-			));
+            dtorBody->push_front( 
+                new IfStmt( decl->location,
+                    new UntypedExpr (
+                        decl->location,
+                        new NameExpr( decl->location, "__CFA_dtor_shutdown" ),
+                        {
+                            new NameExpr( decl->location, decl->params.at(0)->name )
+                        }
+                    ),
+                    new ReturnStmt( decl->location, nullptr )
+                )
+            );
             return;
         }
