                 _setupOutputs()
             }
             if let validStillImageOutput = stillImageOutput {
-                captureSession?.addOutput(validStillImageOutput)
+                if let captureSession = captureSession {
+                    if captureSession.canAddOutput(validStillImageOutput) {
+                        captureSession.addOutput(validStillImageOutput)
+                    }
+                }
             }
         case .VideoOnly, .VideoWithMic:
             captureSession?.addOutput(_getMovieOutput())

    }

    private func _currentVideoOrientation() -> AVCaptureVideoOrientation {
        switch UIApplication.sharedApplication().statusBarOrientation {
        case .LandscapeLeft:
            return .LandscapeRight
        case .LandscapeRight:

        if shouldReinitializeStillImageOutput {
            stillImageOutput = AVCaptureStillImageOutput()
            
            if let captureSession = captureSession {
                if captureSession.canAddOutput(stillImageOutput) {
                    captureSession.beginConfiguration()
                    captureSession.addOutput(stillImageOutput)
                    captureSession.commitConfiguration()
                }
            }
        }
        return stillImageOutput!
    }
