 						self.startNextSignalProducer(nextSignalProducer)
 					}
 
+				// Explicitly drop interruped events from inner signals
+				case .Interrupted:
+					break
+
 				default:
 					self.observer.put(event)
 				}

/// values), according to the semantics of the given strategy.
///
/// If `signal` or an active inner producer emits an error, the returned
/// producer will forward that error immediately.
public func flatten<T, E>(strategy: FlattenStrategy)(producer: Signal<SignalProducer<T, E>, E>) -> Signal<T, E> {
	switch strategy {
	case .Merge:

					case .Completed:
						decrementInFlight()

					// Explicitly drop interruped events from inner signals
					case .Interrupted:
						break
						
					default:
						relayObserver.put(event)
					}
