     removedTransactions = []
     for t in transactions
       if t.isTransaction
-        transactionIndex = @_transactionStorage.indexOf(t)
+        transactionIndex = @_storage.indexOf(t)
         if transactionIndex > -1
-          @_transactionStorage.splice(transactionIndex, 1)
+          @_storage.splice(transactionIndex, 1)
           removedTransactions.push(t)
         i = t.base()
         originalIndex = @_originalStorage.indexOf(i)

class Batman.TransactionAssociationSet extends Batman.Proxy
  constructor: (associationSet, visited, stack) ->
    super(associationSet)
    @_visited = visited
    @_stack = stack
    @_transactionStorage = []
    @_originalStorage = []
    @_loadOriginals(associationSet.toArray())

  add: @mutation (items...) ->
    addedTransactions = []
    for i in items
      if i instanceof Batman.Model && !i.isTransaction
        t = i._transaction(@_visited, @_stack)
        @_transactionStorage.push(t)
        addedTransactions.push(t)
      @_originalStorage.push(i)
    @fire 'itemsWereAdded', addedTransactions if addedTransactions.length

    removedTransactions

  applyChanges: (visited) ->
    for t in @_storage
      t.applyChanges(visited)
    originals = new Batman.Set(@_originalStorage...)
    target = @get('associationSet')
    target.replace(originals)
    target

  @accessor 'length', ->
    @registerAsMutableSource()
    @_storage.length

  build: Batman.AssociationSet::build
