       @unregister()
       Zotero.BetterBibTeX.cache.flush()
       Zotero.BetterBibTeX.keymanager.flush()
+
+      try
+        serialized = Zotero.getZoteroDirectory()
+        serialized.append('bbt-serialized-items.json')
+        serialized.remove(false) if serialized.exists()
+        Zotero.File.putContents(serialized, JSON.stringify(Zotero.Translate.ItemGetter::serialized))
+      catch
+
     return
   register: ->
     observerService = Components.classes['@mozilla.org/observer-service;1'].getService(Components.interfaces.nsIObserverService)

          return key.citekey + (if key.citekeyFormat then ' *' else '')

      return original.apply(this, arguments)
    )(Zotero.ItemTreeView.prototype.getCellText)

  # monkey-patch translate to capture export path and auto-export
  Zotero.Translate.Export.prototype.translate = ((original) ->
    return ->
      # requested translator
      translatorID = @translator?[0]
      translatorID = translatorID.translatorID if translatorID.translatorID
      return original.apply(this, arguments) unless translatorID

      # detect BBT
      for own name, bbt of Zotero.BetterBibTeX.translators
        break if bbt.translatorID == translatorID
        bbt = null

      # convert group into its library items
      if @_collection?.objectType == 'group'
        @_group = @_collection

Components.utils.import('resource://gre/modules/Services.jsm')
Components.utils.import('resource://gre/modules/AddonManager.jsm')
Components.utils.import('resource://zotero/config.js')

require('Formatter.js')
require('lokijs.js')
