     @_ordered.push item
 
     if @_loaded
-      tbody = $ 'tbody', @_tableElement
       html = []
       @generateRowHTML item, html
-      row = $(html.join(''))
-      @_rowsByUid[item._uid] = row[0]
+      @_tbody.append html.join('')
+      @_rowsByUid[item._uid] = $ 'tr:last-child', @_tbody
       @activateRow item
-      tbody.append row
-      @sort()
+      ST.once "sort#{@_uid}", @method('sort')
   
   @method 'listItemRemoved', (list, item) ->
     if (index = @_ordered.indexOf(item))?

      html.push '</span>'
    
    html.push '</th>'
  
  @method 'generateBodyHTML', (html, media='screen') ->
    html.push '<tbody>'
    @generateBodyInnerHTML html, media
    html.push '</tbody>'
  
  @method 'generateBodyInnerHTML', (html, media='screen') ->
    self = this

    @_tableElement = @helper().tag('table').addClass('tableView')
    @_tableElement.addClass @_tableClass if @_tableClass
    html = []
    @generateTableHTML html
    @_tableElement.html html.join('')
    @_tbody = $ 'tbody', @_tableElement
    $('tr', @_tbody).each (index) ->
