 		setter = { newValue in value = newValue }
 
 		(signal, observer) = Signal.pipe()
-		observer.sendNext(initialValue)
 	}
 
 	/// Atomically replaces the contents of the variable.

	/// followed by all changes over time, then complete when the property has
	/// deinitialized.
	public var producer: SignalProducer<Value, NoError> {
		return SignalProducer { [getter, setter, lock, weak self] producerObserver, producerDisposable in
			lock.lock()
			defer { lock.unlock() }


	/// underlying producer prevents sending recursive events.
	private let lock: NSRecursiveLock

	/// The getter and setter of the underlying storage, which could outlive
	/// the property if any of the returned producer is being retained.
	private let getter: () -> Value
	private let setter: Value -> Void

