diff --git a/src/components/blocks.js b/src/components/blocks.js
index 31bdd0270950ce41051d73a75b37661cd13371ff..f73e2de7086736b2a03beb20adad7daf34ad8bc1 100644
--- a/src/components/blocks.js
+++ b/src/components/blocks.js
@@ -12,6 +12,9 @@ export default class Blocks extends React.Component {
             component,
             defaultsDeep({}, this.props.options, Blocks.defaultOptions)
         );
+        if (this.props.vm) {
+            this.workspace.addChangeListener(this.props.vm.blockListener);
+        }
     }
     render () {
         return (
diff --git a/src/components/gui.js b/src/components/gui.js
index 9d7465f6f5edb8e45fb3429d8c3e9d16f6fa1104..d0ebe1e37113d994f230eda13bca194e283f1ce6 100644
--- a/src/components/gui.js
+++ b/src/components/gui.js
@@ -12,12 +12,17 @@ export default class GUI extends React.Component {
                     options={{
                         toolbox: this.toolbox
                     }}
+                    vm={this.props.vm}
                 />
             </div>
         );
     }
 }
 
+GUI.propTypes = {
+    vm: React.PropTypes.object
+};
+
 GUI.defaultProps = {
     vm: new VM()
 };