         sourceCode.write()
           .done (data) ->
             afterSave = ->
+              Smalruby.savedFilename = sourceCode.get('filename')
+              window.changed = false
               sourceCode.check()
                 .done (data) ->
                   if data.length > 0

          .done (data) ->
            afterSave = ->
              $.unblockUI()
              window.changed = false
              window.successMessage('セーブしました')

            if data.source_code.error
              if confirm("前に#{sourceCode.get('filename')}という名前でセーブしているけど本当にセーブしますか？\nセーブすると前に作成したプログラムは消えてしまうよ！")
                sourceCode.write(true)
                  .done (data) ->
                    afterSave()

                .fail -> failedFunc()

            if data.source_code.error
              if sourceCode.get('filename') == Smalruby.savedFilename ||
                 confirm("前に#{sourceCode.get('filename')}という名前でセーブしているけど本当にセーブしますか？\nセーブすると前に作成したプログラムは消えてしまうよ！")
                sourceCode.write(true)
                  .done (data) ->
                    afterSave()
