diff --git a/launch_medm b/launch_medm
index 3d904528bdb60ca3a074cb911b93976b9b2e79a1..8c7ca18528ac9fe371578c6be5664b37a5a1d708 100644
--- a/launch_medm
+++ b/launch_medm
@@ -1,7 +1,8 @@
 #setenv EPICS_DISPLAY_PATH /APSshare/epics/synApps_5_5/support/all_adl
-medm -x -attach -macro "P=kmp2:,M1=m1,M2=m2,M3=m3" motor3x.adl &
+medm -x -attach -macro "P=kmp3:,M1=m1,M2=m2,M3=m3" motor3x.adl &
 sleep 4.0
-medm -x -attach -macro "P=kmp2:,M1=m4,M2=m5,M3=m6" motor3x.adl &
-medm -x -attach -macro "P=kmp2:,M1=lab:m1,M2=lab:m2,M3=lab:m3" motor3x.adl &
-medm -x -attach -macro "P=kmp2:,M=m1" ~/epics/synAppsSVN/support/motor/motorApp/op/adl/motorx_all.adl &
-medm -x -attach -macro "P=kmp2:lab:,M=m1" ~/epics/synAppsSVN/support/motor/motorApp/op/adl/motorx_all.adl &
+medm -x -attach -macro "P=kmp3:,M1=m4,M2=m5,M3=m6" motor3x.adl &
+medm -x -attach -macro "P=kmp3:,M1=lab:m1,M2=lab:m2,M3=lab:m3" motor3x.adl &
+medm -x -attach -macro "P=kmp3:,M=m1" ~/epics/synAppsSVN/support/motor/motorApp/op/adl/motorx_all.adl &
+medm -x -attach -macro "P=kmp3:lab:,M=m1" ~/epics/synAppsSVN/support/motor/motorApp/op/adl/motorx_all.adl &
+
diff --git a/myLabTransform.py b/myLabTransform.py
index bdd1705ecd7b305956c43154f64333aeadd16d62..746752f6e4862d03abab446bb116cd766d6825ff 100644
--- a/myLabTransform.py
+++ b/myLabTransform.py
@@ -51,11 +51,13 @@ class myTransform(transform.transform):
     return retval.tolist()[0]
 
 if __name__ == "__main__":
-  prefix = 'kmp2:'
-  #!prefix = 'kmp3:'
+  #!prefix = 'kmp2:'
+  prefix = 'kmp3:'
+  labStr = 'lab'
   realMotors = ["%s%s" % (prefix, x) for x in ('m1', 'm2', 'm3') ]
   transformMotors = ["%s%s" % (prefix, x) for x in ('m4', 'm5', 'm6') ]
-  softMotors = ["%s%s" % (prefix, x) for x in ('lab:m1', 'lab:m2', 'lab:m3') ]
-  print realMotors, transformMotors, softMotors
-  MyTrans = myTransform(realMotors, transformMotors, softMotors)
+  softMotors = ["%s%s:%s" % (prefix, labStr, x) for x in ('m1', 'm2', 'm3') ]
+  enablePv = "%s%s:enable" % (prefix, labStr)
+  print realMotors, transformMotors, softMotors, enablePv
+  MyTrans = myTransform(realMotors, transformMotors, softMotors, enablePv)
   MyTrans.main()
diff --git a/transform.db b/transform.db
index 3242c0f9b2002537e7132a6f88e3ee79d47c5f0e..d8c4fb7af9168b6580670d609fdadf91411bb6f5 100644
--- a/transform.db
+++ b/transform.db
@@ -1,3 +1,11 @@
+record(bo,"$(P)$(S):enable")
+{
+  field(DESC,"Enable/disable transform")
+  field(ZNAM,"Disabled")
+  field(ONAM,"Enabled")
+  field(VAL, "1")
+}
+
 record(motor,"$(P)$(S):m1")
 {
   field(DTYP,"Soft Channel")
diff --git a/transform.py b/transform.py
index 5d5b3e7ddfb2b6dc4421c8a16882a73e142375b6..58ac932093540b47cb286375411165dd698544fa 100644
--- a/transform.py
+++ b/transform.py
@@ -4,7 +4,7 @@ import epics
 from time import sleep
 
 class transform:
-  def __init__(self, (m1, m2, m3), (t1, t2, t3), (tm1, tm2, tm3)):
+  def __init__(self, (m1, m2, m3), (t1, t2, t3), (tm1, tm2, tm3), enable):
     """ 
     real motors (to be transformed): m1, m2, m3
     transform motors: t1, t2, t3
@@ -26,6 +26,7 @@ class transform:
     self.abortFlag = False
     self.initCompleteFlag = False
     self.syncInProgress = False
+
     
     ### PVs to set
     
@@ -73,6 +74,9 @@ class transform:
 
     ### PVs to monitor
 
+    # Calculation enable PV
+    self.enablePv = epics.PV(enable, callback=self.enableCallback)
+
     # real motor RBV (for calculating transformed position)
     self.m_rbv = []
     for m in (m1, m2, m3):
@@ -131,6 +135,14 @@ class transform:
 
   ### Callback functions (to be called when PV values change--only set flags that are watched in main loop)
 
+  def enableCallback(self, **kw):
+    if kw['value'] == 1:
+      self.enableFlag = True
+      print "Transform is enabled."
+    else:
+      self.enableFlag = False
+      print "Transform is diabled."
+
   def driveCallback(self, **kw):
     #!print "driveCallback:\n", "  ", kw['pvname'], kw['value']
     if self.initCompleteFlag == True and self.syncInProgress == False:
@@ -321,33 +333,39 @@ class transform:
       
       if self.abortFlag == True:
         break
-      # The order of these if statements is important. The ones that appear first take precendence.
-      if self.reinitFlag == True:
-        #!print "idle: resyncing after reconnect"
-	#!print "  self.reinitFlag = ", self.reinitFlag
-	self.resyncAfterReconnect()
-      if self.stopMotorsFlag == True:
-        #!print "idle: stop motors"
-        self.stopMotors()
-      if self.moveSoftMotorFlag == True:
-        #!print "idle: move motors"
-        self.moveMotors()
-      if self.dmovChangeFlag == True:
-	#!print "idle: update dmov"
-        self.updateDmov()
-      if self.updateReadbackFlag == True:
-        #!print "idle: update readback"
-        self.updateReadbacks()
-      if self.syncSoftTargetFlag == True:
-        #!print "idle: sync soft targets"
-	self.syncSoftTargets()
+      
+      if self.enableFlag == True:
+        # The order of these if statements is important. The ones that appear first take precendence.
+        if self.reinitFlag == True:
+          #!print "idle: resyncing after reconnect"
+	  #!print "  self.reinitFlag = ", self.reinitFlag
+	  self.resyncAfterReconnect()
+        if self.stopMotorsFlag == True:
+          #!print "idle: stop motors"
+          self.stopMotors()
+        if self.moveSoftMotorFlag == True:
+          #!print "idle: move motors"
+          self.moveMotors()
+        if self.dmovChangeFlag == True:
+	  #!print "idle: update dmov"
+          self.updateDmov()
+        if self.updateReadbackFlag == True:
+          #!print "idle: update readback"
+          self.updateReadbacks()
+        if self.syncSoftTargetFlag == True:
+          #!print "idle: sync soft targets"
+	  self.syncSoftTargets()
+      else:
+        pass
 
 if __name__ == "__main__":
   prefix = 'kmp2:'
+  labStr = 'lab'
   realMotors = ["%s%s" % (prefix, x) for x in ('m1', 'm2', 'm3') ]
   transformMotors = ["%s%s" % (prefix, x) for x in ('m4', 'm5', 'm6') ]
-  softMotors = ["%s%s" % (prefix, x) for x in ('lab:m1', 'lab:m2', 'lab:m3') ]
-  print realMotors, transformMotors, softMotors
-  MyTrans = transform(realMotors, transformMotors, softMotors)
+  softMotors = ["%s%s:%s" % (prefix, labStr, x) for x in ('m1', 'm2', 'm3') ]
+  enablePv = "%s%s:enable" % (prefix, labStr)
+  print realMotors, transformMotors, softMotors, enablePv
+  MyTrans = transform(realMotors, transformMotors, softMotors, enablePv)
   MyTrans.main()