         do {
             try device.lockForConfiguration()
 
-            device.setExposureModeCustom(duration: AVCaptureDevice.currentExposureDuration, iso: newISO, completionHandler: nil)
+			if device.isExposureModeSupported(.custom) {
+				device.setExposureModeCustom(duration: AVCaptureDevice.currentExposureDuration, iso: newISO, completionHandler: nil)
+			}
 
             device.unlockForConfiguration()
         } catch {

        }
    }

    /// Checks if an exposure adjustment is progress.
    public var isAdjustingExposure: Bool {
        get {

        do {
            try device.lockForConfiguration()

			if device.isExposureModeSupported(.custom) {
				device.setExposureModeCustom(duration: CMTimeMakeWithSeconds( newDurationSeconds, preferredTimescale: 1000*1000*1000 ), iso: AVCaptureDevice.currentISO, completionHandler: nil)
			}

            device.unlockForConfiguration()
        } catch {
