diff --git a/src/engine/blocks.js b/src/engine/blocks.js
index 032bb075a..35b8f03cc 100644
--- a/src/engine/blocks.js
+++ b/src/engine/blocks.js
@@ -321,7 +321,11 @@ class Blocks {
             stage.renameVariable(e.varId, e.newName);
             // Update all the blocks that use the renamed variable.
             if (optRuntime) {
-                optRuntime.updateBlocksAfterVarRename(e.varId, e.newName);
+                const targets = optRuntime.targets;
+                for (let i = 0; i < targets.length; i++) {
+                    const currTarget = targets[i];
+                    currTarget.blocks.updateBlocksAfterVarRename(e.varId, e.newName);
+                }
             }
             break;
         case 'var_delete':
@@ -415,7 +419,7 @@ class Blocks {
             const isSpriteSpecific = optRuntime.monitorBlockInfo.hasOwnProperty(block.opcode) &&
                 optRuntime.monitorBlockInfo[block.opcode].isSpriteSpecific;
             block.targetId = isSpriteSpecific ? optRuntime.getEditingTarget().id : null;
-            
+
             if (wasMonitored && !block.isMonitored) {
                 optRuntime.requestRemoveMonitor(block.id);
             } else if (!wasMonitored && block.isMonitored) {
@@ -550,6 +554,29 @@ class Blocks {
         this.resetCache();
     }
 
+    /**
+     * Keep blocks up to date after a variable gets renamed.
+     * @param {string} varId The id of the variable that was renamed
+     * @param {string} newName The new name of the variable that was renamed
+     */
+    updateBlocksAfterVarRename (varId, newName) {
+        const blocks = this._blocks;
+        for (const blockId in blocks) {
+            let varOrListField = null;
+            if (blocks[blockId].fields.VARIABLE) {
+                varOrListField = blocks[blockId].fields.VARIABLE;
+            } else if (blocks[blockId].fields.LIST) {
+                varOrListField = blocks[blockId].fields.LIST;
+            }
+            if (varOrListField) {
+                const currFieldId = varOrListField.id;
+                if (varId === currFieldId) {
+                    varOrListField.value = newName;
+                }
+            }
+        }
+    }
+
     // ---------------------------------------------------------------------
 
     /**
diff --git a/src/engine/runtime.js b/src/engine/runtime.js
index d5e79f4dc..bf7969a0c 100644
--- a/src/engine/runtime.js
+++ b/src/engine/runtime.js
@@ -1581,33 +1581,6 @@ class Runtime extends EventEmitter {
     disableProfiling () {
         this.profiler = null;
     }
-
-    /**
-     * Keep blocks up to date after a variable gets renamed.
-     * @param {string} varId The id of the variable that was renamed
-     * @param {string} newName The new name of the variable that was renamed
-     */
-    updateBlocksAfterVarRename (varId, newName) {
-        const allTargets = this.targets;
-        for (let i = 0; i < allTargets.length; i++) {
-            const currTarget = allTargets[i];
-            const currBlocks = currTarget.blocks._blocks;
-            for (const blockId in currBlocks) {
-                let varOrListField = null;
-                if (currBlocks[blockId].fields.VARIABLE) {
-                    varOrListField = currBlocks[blockId].fields.VARIABLE;
-                } else if (currBlocks[blockId].fields.LIST) {
-                    varOrListField = currBlocks[blockId].fields.LIST;
-                }
-                if (varOrListField) {
-                    const currFieldId = varOrListField.id;
-                    if (varId === currFieldId) {
-                        varOrListField.value = newName;
-                    }
-                }
-            }
-        }
-    }
 }
 
 /**