 		let state = Atomic(ConcatState<T, E>())
 		
 		/// Subscribes to the given signal producer.
-		var subscribeToSignalProducer: (SignalProducer<T, E> -> Void)?
-		
-		/// Sends completed to the subscriber if all signals are finished. Returns whether
-		/// the outer signal was completed.
-		let complete💯: Void -> Void = {
-			sendCompleted(observer)
-			
-			// A strong reference is held to `subscribeToSignalProducer` until
-			// completion, preventing it from deallocating early.
-			subscribeToSignalProducer = nil
-		}
-		
-		subscribeToSignalProducer = Z { recur, signalProducer in
+		let subscribeToSignalProducer: (SignalProducer<T, E> -> Void) = Z { recur, signalProducer in
 			let serialDisposable = SerialDisposable()
 			let serialDisposableCompositeHandle = disposable.addDisposable(serialDisposable)
 			state.modify { (var state) in

				}
				
				if shouldSubscribe {
					subscribeToSignalProducer!(innerSignalProducer)
				}
			}, error: { error in
				sendError(observer, error)

				if let nextSignalProducer = nextSignalProducer {
					recur(nextSignalProducer)
				} else if isComplete {
					sendCompleted(observer)
				}
			})
		}
