         self.updateOpenButtonWait()
         
         if self.config.boolForKey("useAutoTheme") == true {
-            self.captureTimer?.invalidate()
+            self.removeImageCaptureTimer()
             self.endCaptureSession()
         }
     }
 
+    ///////////////////////////////////////////////////////////////////////
+    //
+    //  Settings view notification handlers
+    //
     
     func handleSettingsUpdated() {
         println("View told settings have updated")
         self.setTheme()
         
         if config.boolForKey("useAutoTheme") == true {
-            // we know this changed from false to true
-            self.setupAutoTheme()
+            println("  Use Auto Theme: true")
+            if self.captureSession == nil {
+                // only if we have a nil session to we need to start
+                println("  Auto theme not running - starting")
+                self.setupAutoTheme()
+            }
         } else {
-            self.captureTimer?.invalidate()
+            println("  Use Auto Theme: false")
+            self.removeImageCaptureTimer()
             self.endCaptureSession()
             self.setupWithoutAutoTheme()
         }

    
    
    func endCaptureSession() {
        if self.config.boolForKey("useAutoTheme") == true {
            dispatch_async(self.sessionQueue, {
                
                if let session = self.captureSession {
                    println("Stopping capture session")
                    session.stopRunning()
                }
            })
        }
    }
    
    

        println("Do actual capture called:")
        if let session = self.captureSession {
            if session.running == true {
                println("  Session running")
                if let connection = self.imageOutput.connectionWithMediaType(AVMediaTypeVideo) {
                    println("    Got connection")
                    if connection.active == true {
                        println("      Connection active - doing capture")
                        self.imageOutput.captureStillImageAsynchronouslyFromConnection(
                            self.imageOutput.connectionWithMediaType(AVMediaTypeVideo),
                            completionHandler: self.handleInputImage
                        )
                    }
                }
            }
        }
    }
