             unsubAll() if reply == Bacon.noMore
             reply
           else
-            setValue(event.value)
+            values[index] = event.value
             if _.all(values, ((x) -> x != None))
               if initialSent and event.isInitial()
                 # don't send duplicate Initial

                reply
            else
              Bacon.more
      sinkFor = (index, stream) ->
        combiningSink(
          (-> ends[index] = true)
          ((x) -> values[index] = x)
          stream)
      subs = for stream, index in streams 
        do (stream, index) ->
          stream = Bacon.constant(stream) if not (stream instanceof Observable)
          sinkFor index, stream
      compositeUnsubscribe subs...
  else
    Bacon.constant([])

          reply = sink end()
          unsubAll() if reply == Bacon.noMore
      initialSent = false
      combiningSink = (stream, index) => (unsubAll) ->
        stream.subscribeInternal (event) =>
          if (event.isEnd())
            ends[index] = true
            checkEnd(unsubAll)
            Bacon.noMore
          else if event.isError()
