diff --git a/js/cam/Assembler.js b/js/cam/Assembler.js
index 31a770a24a62782b2261249f45f971d985614e42..d80a1d465589e5215c0f2562a2ef2c0a87874710 100644
--- a/js/cam/Assembler.js
+++ b/js/cam/Assembler.js
@@ -248,7 +248,7 @@ Assembler = Backbone.Model.extend({
         this.set("dataOut", data);
         this.set("editsMadeToProgram", false);
         this.set("exporter", exporter);
-        this.resetSimulation();
+        if (!dmaGlobals.appState.get("stockSimulationPlaying")) this.resetSimulation();
         return {data:data, exporter:exporter};
     },
 
diff --git a/js/cam/Machine.js b/js/cam/Machine.js
index 49c2a9e19ee5303f8f9aca942b76fb87db57f23f..b279257650f37cb0280a4839e9325b83864008fc 100644
--- a/js/cam/Machine.js
+++ b/js/cam/Machine.js
@@ -127,7 +127,7 @@ Machine.prototype._normalizeSpeed = function(startingPos, x, y, speed){//xy move
 };
 
 Machine.prototype._animateObjects = function(objects, axis, speed, startingPos, target, callback){
-    var increment = speed/5;//based on 1/10th of sec
+    var increment = speed/5;
     if (increment == 0) {
         if (callback) callback();
         return;
@@ -135,11 +135,10 @@ Machine.prototype._animateObjects = function(objects, axis, speed, startingPos,
     var direction = 1;
     if (target-startingPos < 0) direction = -1;
     increment = Math.max(increment, 0.00001)*direction;//need to put a min on the increment - other wise this stall out with floating pt tol
-    var simSpeed = 50/dmaGlobals.assembler.get("simSpeed");//1/10th of sec
-    this._incrementalMove(objects, axis, increment, startingPos, target, direction, callback, simSpeed);
+    this._incrementalMove(objects, axis, increment, startingPos, target, direction, callback);
 };
 
-Machine.prototype._incrementalMove = function(objects, axis, increment, currentPos, target, direction, callback, simSpeed){
+Machine.prototype._incrementalMove = function(objects, axis, increment, currentPos, target, direction, callback){
     var self = this;
     setTimeout(function(){
         if ((target-currentPos)*direction <= 0) {
@@ -149,8 +148,8 @@ Machine.prototype._incrementalMove = function(objects, axis, increment, currentP
         var nextPos = currentPos + increment;
         if (Math.abs(target-currentPos) < Math.abs(increment)) nextPos = target;//don't overshoot
         self._setPosition(objects, nextPos, axis);
-        self._incrementalMove(objects, axis, increment, nextPos, target, direction, callback, simSpeed)
-    },simSpeed);
+        self._incrementalMove(objects, axis, increment, nextPos, target, direction, callback)
+    }, 50/dmaGlobals.assembler.get("simSpeed"));
 };
 
 Machine.prototype._setPosition = function(objects, nextPos, axis){
diff --git a/js/menus/AnimationMenuView.js b/js/menus/AnimationMenuView.js
index 938f957282d337744230b61fd717bc8e536527d4..087a27b2f769f81ebc41be659a909cee7e3e9c41 100644
--- a/js/menus/AnimationMenuView.js
+++ b/js/menus/AnimationMenuView.js
@@ -67,6 +67,7 @@ AnimationMenuView = Backbone.View.extend({
     },
 
     _changeSpeedSlider: function(e){
+        e.preventDefault();
         dmaGlobals.assembler.set("simSpeed", $(e.target)[0].value);
     },
 
diff --git a/js/threeViews/ThreeView.js b/js/threeViews/ThreeView.js
index 5a43e62daf3e05b3ef76e9372695eaab3c79b9a6..03a7b2e9d12dd27351bbf67c19c2be05263b19f6 100644
--- a/js/threeViews/ThreeView.js
+++ b/js/threeViews/ThreeView.js
@@ -86,7 +86,7 @@ ThreeView = Backbone.View.extend({
 
     _mouseMoved: function(e){
 
-        if (this.mouseIsDown && this.controls.enabled) {//in the middle of a camera move
+        if (this.mouseIsDown && !this.controls.noRotate) {//in the middle of a camera move
             this.highlighter.setNothingHighlighted();
             this._setNoPartIntersections();
             return;