       vx = canvas.sx_to_vx(e.bokeh.sx)
       vy = canvas.sy_to_vy(e.bokeh.sy)
       if not @plot_view.frame.contains(vx, vy)
-        @mget('tooltip').clear()
+        for rid, tt of @mget('ttmodels')
+          tt.clear()
         return
       @_inspect(vx, vy)
 
     _move_exit: ()->
-      @mget('tooltip').clear()
+      for rid, tt of @mget('ttmodels')
+        tt.clear()
 
     _inspect: (vx, vy, e) ->
       geometry = {

      for r in @mget('renderers')
        sm = r.get('data_source').get('selection_manager')
        sm.inspect(@, @plot_view.renderers[r.id], geometry, {"geometry": geometry})

    _update: (indices, tool, renderer, ds, {geometry}) ->
      @mget('tooltip').clear()

      if indices.length == 0
        return


    initialize: (attrs, options) ->
      super(attrs, options)
      ttmodels = {}
      renderers = @get('plot').get('renderers')
      for r in @get('renderers')
        tooltip = new Tooltip.Model()
        ttmodels[r.id] = tooltip
        renderers.push(tooltip)
      @set('ttmodels', ttmodels)
      @get('plot').set('renderers', renderers)
      return

    defaults: () ->
      return _.extend({}, super(), {
