 
       for key, binder of @binders
         @upstreamObservers[key] = @observe scope, key, ((key, binder) => =>
-          binder.publish()
+          unless typeof binder.observer?.value() == 'function'
+            binder.publish()
         ).call(@, key, binder)
 
   # Intercept `Rivets.Binding::unbind` to be called on `@componentView`.

      @formattedValue value.call @model
    else
      @formattedValue value

    @binder.routine?.call @, @el, value

  # Syncs up the view binding with the model.

            @static[propertyName] = attribute.value
          else
            @binders[propertyName] = attribute.value
      
      unless @bound
        Object.keys(@binders).forEach (key) =>
          binder = 
            routine: (el, value) => scope?[key] = value
            getValue: () => scope?[key]

          @binders[key] = @view.addBinding null, binder, @binders[key]

        @bound = true

