diff --git a/src/containers/gui.jsx b/src/containers/gui.jsx
index 87f195aab83d5e1a70b7d33258babfeee7dd14a3..ed1fe28eac6d447af156dc6c89fc345016d21b37 100644
--- a/src/containers/gui.jsx
+++ b/src/containers/gui.jsx
@@ -1,3 +1,4 @@
+import AudioEngine from 'scratch-audio';
 import PropTypes from 'prop-types';
 import React from 'react';
 import VM from 'scratch-vm';
@@ -16,6 +17,8 @@ class GUI extends React.Component {
         this.state = {tabIndex: 0};
     }
     componentDidMount () {
+        this.audioEngine = new AudioEngine();
+        this.props.vm.attachAudioEngine(this.audioEngine);
         this.props.vm.loadProject(this.props.projectData);
         this.props.vm.setCompatibilityMode(true);
         this.props.vm.start();
diff --git a/src/containers/stage.jsx b/src/containers/stage.jsx
index d9ab05f12966d701d898142b9f7a5a4855af9d15..219d83a70b7d709b3c6d792cee5cd833c005dd21 100644
--- a/src/containers/stage.jsx
+++ b/src/containers/stage.jsx
@@ -2,7 +2,6 @@ import bindAll from 'lodash.bindall';
 import PropTypes from 'prop-types';
 import React from 'react';
 import Renderer from 'scratch-render';
-import AudioEngine from 'scratch-audio';
 import VM from 'scratch-vm';
 
 import StageComponent from '../components/stage/stage.jsx';
@@ -37,8 +36,6 @@ class Stage extends React.Component {
         this.updateRect();
         this.renderer = new Renderer(this.canvas);
         this.props.vm.attachRenderer(this.renderer);
-        this.audioEngine = new AudioEngine();
-        this.props.vm.attachAudioEngine(this.audioEngine);
     }
     shouldComponentUpdate (nextProps) {
         return this.props.width !== nextProps.width || this.props.height !== nextProps.height;