         # should bounce init value
         dispatchingId = UpdateBarrier.currentEventId()
         valId = currentValueRootId
-        if !ended && valId && dispatchingId && dispatchingId != valId
+        if !ended and valId and dispatchingId and dispatchingId != valId
           # when subscribing while already dispatching a value and this property hasn't been updated yet
           # we cannot bounce before this property is up to date.
           #console.log "bouncing with possibly stale value", event.value(), "root at", valId, "vs", dispatchingId

  new EventStream describe(Bacon, "fromArray", values), (sink) ->
    unsubd = false
    reply = Bacon.more
    while (reply != Bacon.noMore) && !unsubd
      if _.empty values
        sink(end())
        reply = Bacon.noMore

    if (isObservable(value))
      streams.push(value)
      funcs.push(applyStreamValue(key, streams.length - 1))
    else if (value == Object(value) and typeof value != "function" and !(value instanceof RegExp) and !(value instanceof Date))
      pushContext = (key) -> (ctxStack) ->
        newContext = mkContext(value)
        setValue(ctxStack, key, newContext)
