diff --git a/js/cam/Assembler.js b/js/cam/Assembler.js
index 7c3e7ffe2890b3076b9ad106348af4f568397296..cac5ebe1cb7cb3ced1debc127ce8a35e15773b89 100644
--- a/js/cam/Assembler.js
+++ b/js/cam/Assembler.js
@@ -29,10 +29,25 @@ Assembler = Backbone.Model.extend({
         this.set("editsMadeToProgram", true);
     },
 
+    _getExporter: function(){
+        var currentExporter = this.get("exporter");
+        if (this.get("camProcess") == "shopbot") {
+            if (currentExporter && currentExporter.constructor == ShopbotExporter){
+                return currentExporter;
+            } else {
+                return new ShopbotExporter();
+            }
+        } else if (this.get("camProcess") == "gcode") {
+            if (currentExporter && currentExporter.constructor == GCodeExporter){
+                return currentExporter;
+            } else {
+                return new GCodeExporter();
+            }
+        }
+    },
+
     postProcess: function(){
-        var exporter;
-        if (this.get("camProcess") == "shopbot") exporter = new ShopbotExporter();
-        else if (this.get("camProcess") == "gcode") exporter = new GCodeExporter();
+        var exporter = this._getExporter();
         if (exporter) {
             var data = "";
             data += exporter.makeHeader();
diff --git a/js/menus/SendMenuView.js b/js/menus/SendMenuView.js
index 15fe73834bed6919e6fda2af97b493e30f539087..765e48efa65f878b0dcab46a4f651540ae04541d 100644
--- a/js/menus/SendMenuView.js
+++ b/js/menus/SendMenuView.js
@@ -7,11 +7,14 @@ SendMenuView = Backbone.View.extend({
     el: "#menuContent",
 
     events: {
-        "click #saveSendMenu":                                       "_save"
+        "click #saveSendMenu":                                       "_save",
+        "click #overrideEdits":                                      "_postProcess"
     },
 
     initialize: function(){
 
+        //bind events
+        this.listenTo(dmaGlobals.assembler, "change", this.render);
 
         _.bindAll(this, "render");
     },
@@ -21,6 +24,11 @@ SendMenuView = Backbone.View.extend({
         dmaGlobals.assembler.save();
     },
 
+    _postProcess: function(e){
+        e.preventDefault();
+        dmaGlobals.assembler.postProcess();
+    },
+
     render: function(){
         if (this.model.get("currentTab") != "send") return;
         if (dmaGlobals.assembler.get("needsPostProcessing")) dmaGlobals.assembler.postProcess();
@@ -30,6 +38,7 @@ SendMenuView = Backbone.View.extend({
     template: _.template('\
         <a href="#" id="saveSendMenu" class=" btn btn-block btn-lg btn-default">Save</a><br/>\
         <textarea id="gcodeEditor"><%= dataOut %></textarea>\
+        <a href="#" id="overrideEdits" class=" btn btn-block btn-lg btn-default">Undo Changes</a><br/>\
         ')
 
 });
\ No newline at end of file