     return unless key
     return unless Zotero.BetterBibTeX.pref.get('autoAbbrev')
 
-    @journalAbbrevs[key] ?= Zotero.Cite.getAbbreviation(null, @journalAbbrevsStore, 'default', 'container-title', key)
-    return @journalAbbrevs[key]
+    style = Zotero.BetterBibTeX.pref.get('autoAbbrevStyle') || (style for style in Zotero.Styles.getVisible() when style.usesAbbreviation)[0].styleID
+
+    @journalAbbrevs['default']?['container-title']?[key] || Zotero.Cite.getAbbreviation(style, @journalAbbrevs, 'default', 'container-title', key)
+    return @journalAbbrevs['default']?['container-title']?[key] || key
 
   extract: ->
     [item, insitu] = (if arguments[0]._sandboxManager then Array.slice(arguments, 1) else arguments)


  reset: ->
    Zotero.DB.query('delete from betterbibtex.keys')
    @journalAbbrevs = Object.create(null)
    @keys.removeDataOnly()
    @keys.removeWhere((obj) -> true) # causes cache drop
    @keys.flushChanges()
    @scan()

  resetJournalAbbrevs: ->
    @journalAbbrevs = Object.create(null)

  clearDynamic: ->
    @keys.removeWhere((obj) -> obj.citekeyFormat && obj.citekeyFormat != Zotero.BetterBibTeX.citekeyFormat)

Zotero.BetterBibTeX.keymanager = new class
  constructor: ->
    @log = Zotero.BetterBibTeX.log
    @resetJournalAbbrevs()

    @keys = Zotero.BetterBibTeX.Cache.addCollection('keys', {disableChangesApi: false, indices: 'itemID libraryID citekey citekeyFormat'.split(/\s+/) })
    @keys.on('insert', (key) ->
