diff --git a/chrome/content/zotero/xpcom/translation/translate_item.js b/chrome/content/zotero/xpcom/translation/translate_item.js index 2a3377d32..8cff06292 100644 --- a/chrome/content/zotero/xpcom/translation/translate_item.js +++ b/chrome/content/zotero/xpcom/translation/translate_item.js @@ -385,8 +385,13 @@ Zotero.Translate.ItemSaver.prototype = { // try to map from base field if(Zotero.ItemFields.isBaseField(fieldID)) { fieldID = Zotero.ItemFields.getFieldIDFromTypeAndBase(typeID, fieldID); + + // Skip mapping if item field already exists + var fieldName = Zotero.ItemFields.getName(fieldID); + if(item[fieldName]) continue; + if(fieldID) { - Zotero.debug("Translate: Mapping "+field+" to "+Zotero.ItemFields.getName(fieldID), 5); + Zotero.debug("Translate: Mapping "+field+" to "+fieldName, 5); } } diff --git a/chrome/content/zotero/xpcom/utilities.js b/chrome/content/zotero/xpcom/utilities.js index e64a8fcde..ae17c3545 100644 --- a/chrome/content/zotero/xpcom/utilities.js +++ b/chrome/content/zotero/xpcom/utilities.js @@ -1262,7 +1262,9 @@ Zotero.Utilities = { // map from base field if possible if((itemFieldID = Zotero.ItemFields.getFieldIDFromTypeAndBase(typeID, fieldID))) { - newItem[Zotero.ItemFields.getName(itemFieldID)] = val; + var fieldName = Zotero.ItemFields.getName(itemFieldID); + // Only map if item field does not exist + if(!newItem[fieldName]) newItem[fieldName] = val; continue; // already know this is valid }