diff --git a/js/menus/MaterialEditorMenuView.js b/js/menus/MaterialEditorMenuView.js
index 04b044ba4c7fae8e9c76ae6abf5f2e010a2acf12..7d7c604688757871c1b9ae7ad95fb85c86f86c7a 100644
--- a/js/menus/MaterialEditorMenuView.js
+++ b/js/menus/MaterialEditorMenuView.js
@@ -56,16 +56,15 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'materials', 'text!materi
             fileSaver.saveMaterial(this.materialID, this.material);
         },
 
-        saveExitMenu: function(e, callback){
-            e.preventDefault();
+        saveExitMenu: function(){
             if (this.material.name == "") this.material.name = "Material " + materialNameIndex++;
             materials.setMaterial(this.materialID, _.clone(this.material));
-            callback();
+            return true;
         },
 
-        deleteExitMenu: function(e, callback){
+        deleteExitMenu: function(){
             var deleted = materials.deleteMaterial(this.materialID);
-            if (deleted) callback();
+            return deleted;
         },
 
         _makeTemplateJSON: function(){
diff --git a/js/menus/MenuParentView.js b/js/menus/MenuParentView.js
index e801b3d46137507516a9eedf9cf81aea24d84c03..135de2e989292e82ecdd30c28a4a0ff72aa679fa 100644
--- a/js/menus/MenuParentView.js
+++ b/js/menus/MenuParentView.js
@@ -20,16 +20,16 @@ define(['jquery', 'underscore', 'backbone'], function($, _, Backbone){
             return null;//override in subclasses
         },
 
-        deleteExitMenu: function(e, callback){
-            callback();
+        deleteExitMenu: function(e){
+            return true;
         },
 
-        cancelExitMenu: function(e, callback){
-            callback();
+        cancelExitMenu: function(e){
+            return true;
         },
 
-        saveExitMenu: function(e, callback){
-            callback();
+        saveExitMenu: function(e){
+            return true;
         },
 
         render: function(){
diff --git a/js/menus/MenuWrapperView.js b/js/menus/MenuWrapperView.js
index 38279957830d04ae561e9c1d61acf7d3be81550d..4f07aa82b9be33ff868bd9aeb30c397ddfa434ed 100644
--- a/js/menus/MenuWrapperView.js
+++ b/js/menus/MenuWrapperView.js
@@ -239,25 +239,22 @@ define(['jquery', 'underscore', 'plist', 'backbone', 'lattice', 'appState', 'tex
         _deleteExitMenu: function(e){
             e.preventDefault();
             var nextNav = this._getNextNav();
-            this.menu.deleteExitMenu(e, function(){
-                appState.set("currentNav", nextNav);
-            });
+            var shouldExit = this.menu.deleteExitMenu(e);
+            if (shouldExit) appState.set("currentNav", nextNav)
         },
 
         _cancelExitMenu: function(e){
             e.preventDefault();
             var nextNav = this._getNextNav();
-            this.menu.cancelExitMenu(e, function(){
-                appState.set("currentNav", nextNav);
-            });
+            var shouldExit = this.menu.cancelExitMenu(e);
+            if (shouldExit) appState.set("currentNav", nextNav);
         },
 
         _saveExitMenu: function(e){
             e.preventDefault();
             var nextNav = this._getNextNav();
-            this.menu.saveExitMenu(e, function(){
-                appState.set("currentNav", nextNav);
-            });
+            var shouldExit = this.menu.saveExitMenu(e);
+            if (shouldExit) appState.set("currentNav", nextNav)
         },
 
         _getNextNav: function(){