diff --git a/src/components/gui.js b/src/components/gui.js
index 77315693712523b2f80465bb76dd97e0ba49ce3c..37b119d0e691e63ce3ef6ad46047f02273c86217 100644
--- a/src/components/gui.js
+++ b/src/components/gui.js
@@ -22,7 +22,6 @@ class GUI extends React.Component {
     }
     onReceiveWorkspace (workspace) {
         this.workspace = workspace;
-        this.workspace.addChangeListener(this.props.vm.blockListener);
         VMManager.attachWorkspace(this.props.vm, this.workspace);
         VMManager.attachMouseEvents(this.props.vm, this.stage);
         VMManager.attachKeyboardEvents(this.props.vm);
diff --git a/src/lib/vm-manager.js b/src/lib/vm-manager.js
index 5014fcd1705feb95ec785d4cdfb7673a5d4daf9c..e3991a5aac11a237d61079269b94b367b1f61d53 100644
--- a/src/lib/vm-manager.js
+++ b/src/lib/vm-manager.js
@@ -2,6 +2,7 @@ const ScratchBlocks = require('scratch-blocks');
 
 module.exports = {
     attachWorkspace: function (vm, workspace) {
+        workspace.addChangeListener(vm.blockListener);
         vm.on('STACK_GLOW_ON', data => workspace.glowStack(data.id, true));
         vm.on('STACK_GLOW_OFF', data => workspace.glowStack(data.id, false));
         vm.on('BLOCK_GLOW_ON', data => workspace.glowBlock(data.id, true));