         module (module-for-dll dll)
         loaded-modules (keys (devices-in-each-module))]
     (when (some #{module} loaded-modules)
-      (let [live-mode (.isLiveModeOn gui)]
-        (when live-mode
-          (.enableLiveMode gui false))
-        (notify-user false "Reloading " module " module...")
+      (notify-user false "Reloading " module " module...")
+      (pausing-live-mode
         (reload-module module
                        (copy dll
-                             (file "." (.getName dll))))
-        (notify-user true "Finished reloading " module "!")
-        (when live-mode
-          (.enableLiveMode gui true))))))
+                             (file "." (new-dll-name dll)))))
+      (notify-user true "Finished reloading " module "!"))))
 
 (defn reload-modules-on-device-adapter-change
   "Watch the directory where compiled DLLs are placed by Visual

      (.setText label (apply label-html message-parts))
      (.show frame))
    (when temporary?
    (future (Thread/sleep 3000)
            (edt (.hide frame))))))

(defn reload-updated-module
  "Unload a module, copy the new version to the Micro-Manager

    (future
      (while @keep-following
        (Thread/sleep 500)
        (when-not (.isAcquisitionRunning gui)
          (reset! date-atom (file-dates path)))))
    #(reset! keep-following false)))
      
(defn watch-dates
