diff --git a/js/menus/Navbar.js b/js/menus/Navbar.js
index 203c1be5916b9984cbd2c47757928ebeac827ae8..3831f8265b35bcc65e0aa205bd6fd6a19cfbd327 100644
--- a/js/menus/Navbar.js
+++ b/js/menus/Navbar.js
@@ -15,8 +15,11 @@ NavBar = Backbone.View.extend({
         "click .menuHoverControls":                     "_setNavSelection",
         "click #saveJSON":                              "_save",
         "click #saveAsJSON":                            "_saveAs",
+        "shown.bs.modal #saveAsModel":                  "_showSaveAsModal",
+        "hide.bs.modal #saveAsModel":                   "_hideSaveAsModal",
+        "change #saveAsModel":                          "_saveAs",
         "click #importJSON":                            "_importJSON",
-        "change #jsonInput":                            "_selectJSONFiles",
+        "change #jsonInput":                            "_selectJSONFiles"
     },
 
     initialize: function(){
@@ -100,6 +103,17 @@ NavBar = Backbone.View.extend({
         e.preventDefault();
         var fileName = $("#saveAsFileName").val();
         dmaGlobals.lattice.saveAsJSON(fileName);
+        $('#saveAsModel').modal('hide');
+    },
+
+    _showSaveAsModal: function(){
+        var input = $("#saveAsFileName");
+        input.focus();
+        input.select();
+    },
+
+    _hideSaveAsModal: function(){
+        $("#saveAsFileName").blur();
     },
 
     _uiStuff: function(){
diff --git a/js/models/AppState.js b/js/models/AppState.js
index 60b3f1bd9af762392e5fa16f55428ad0bc96f9e2..5fcfdb65c8c6a3e044216486c6d5b3601e4614fb 100644
--- a/js/models/AppState.js
+++ b/js/models/AppState.js
@@ -101,6 +101,8 @@ AppState = Backbone.Model.extend({
 
     _handleKeyStroke: function(e){//receives keyup and keydown
 
+        if ($("input").is(':focus')) return;//we are typing in an input
+
         var state = e.data.state;
         var currentTab = this.get("currentTab");
 
@@ -111,6 +113,7 @@ AppState = Backbone.Model.extend({
             this.downKeys[e.keyCode] = true;
         } else this.downKeys[e.keyCode] = false;
 
+//        console.log(e);
 //        console.log(e.keyCode);
         switch(e.keyCode){
             case 16://shift
@@ -135,7 +138,11 @@ AppState = Backbone.Model.extend({
             case 83://s save
                 if (e.ctrlKey || e.metaKey){//command
                     e.preventDefault();
-                    dmaGlobals.lattice.saveAsJSON();
+                    if (e.shiftKey){
+                        $("#saveAsModel").modal("show");
+                    } else {
+                        dmaGlobals.lattice.saveAsJSON();
+                    }
                 }
                 break;
             case 79://o open