 
     # This has a tendency to break scripts that are waiting for playback to change when the level is loaded
     # so only run it after the first world is created.
-    Backbone.Mediator.publish 'level-set-playing', { playing: @wasPlayingWhenCastingBegan } unless event.firstWorld
+    Backbone.Mediator.publish 'level-set-playing', { playing: @wasPlayingWhenCastingBegan } unless event.firstWorld or @setPlayingCalled
 
     fastForwardTo = null
     if @playing

    @casting = true
    @wasPlayingWhenCastingBegan = @playing
    Backbone.Mediator.publish 'level-set-playing', { playing: false }

    if @coordinateDisplay?
      @surfaceTextLayer.removeChild @coordinateDisplay


  onSetPlaying: (e) ->
    @playing = (e ? {}).playing ? true
    @setPlayingCalled = true
    if @playing and @currentFrame >= (@world.totalFrames - 5)
      @currentFrame = 0
    if @fastForwarding and not @playing
