 		_ validator: @escaping (Value, Other.Value) -> Result<(), E>
 	) -> TransactionalProperty<Value, E> {
 		let proposed = Atomic<Value?>(nil)
+		let other = Property(other)
 
 		let property = initializer { proposedInput -> Result<Value, E> in
 			switch validator(proposedInput, other.value) {

		_ inner: T,
		transform: @escaping (T.Value) -> Value,
		validator: @escaping (Value) -> Result<T.Value, TransactionError>,
		validationSetup: ((MutableProperty<Result<(), TransactionError>>) -> Void)?
	) {
		let current = inner.value
		let initialValidation = validator(transform(current)).map { _ in }
		let _validations = MutableProperty<Result<(), TransactionError>>(initialValidation)

		self.lifetime = inner.lifetime
		self.validations = Property(capturing: _validations)

	public let lifetime: Lifetime

	/// Validations that have been made by the property.
	public let validations: Property<Result<(), TransactionError>?>

	/// The action associated with the property.
	private let action: (Value) -> Void
