Index: chrome/content/zotero/xpcom/translate.js
===================================================================
--- chrome/content/zotero/xpcom/translate.js	(revision 2808)
+++ chrome/content/zotero/xpcom/translate.js	(working copy)
@@ -1286,7 +1286,7 @@
 		}
 		
 		// handle attachments
-		if(item.attachments && Zotero.Prefs.get("automaticSnapshots")) {
+		if(item.attachments && (Zotero.Prefs.get("automaticSnapshots") || Zotero.Prefs.get("downloadAssociatedFiles"))) {
 			for each(var attachment in item.attachments) {
 				if(this.type == "web") {
 					if(!attachment.url && !attachment.document) {
@@ -1322,34 +1322,36 @@
 									Zotero.debug("Translate: error attaching document");
 								}
 							} else {
-								var mimeType = null;
-								var title = null;
-								
-								if(attachment.mimeType) {
-									// first, try to extract mime type from mimeType attribute
-									mimeType = attachment.mimeType;
-								} else if(attachment.document && attachment.document.contentType) {
-									// if that fails, use document if possible
-									mimeType = attachment.document.contentType
-								}
-								
-								// same procedure for title as mime type
-								if(attachment.title) {
-									title = attachment.title;
-								} else if(attachment.document && attachment.document.title) {
-									title = attachment.document.title;
-								}
-								
-								if(this.locationIsProxied) {
-									attachment.url = Zotero.Ingester.ProxyMonitor.properToProxy(attachment.url);
-								}
-								
-								var fileBaseName = Zotero.Attachments.getFileBaseNameFromItem(myID);
-								try {
-									Zotero.Attachments.importFromURL(attachment.url, myID, title, fileBaseName);
-								} catch(e) {
-									Zotero.debug("Zotero.Translate: error adding attachment "+attachment.url);
-								}
+							    if(attachment.url != item.url || Zotero.Prefs.get("automaticSnapshots")){
+    								var mimeType = null;
+    								var title = null;
+
+    								if(attachment.mimeType) {
+    									// first, try to extract mime type from mimeType attribute
+    									mimeType = attachment.mimeType;
+    								} else if(attachment.document && attachment.document.contentType) {
+    									// if that fails, use document if possible
+    									mimeType = attachment.document.contentType
+    								}
+
+    								// same procedure for title as mime type
+    								if(attachment.title) {
+    									title = attachment.title;
+    								} else if(attachment.document && attachment.document.title) {
+    									title = attachment.document.title;
+    								}
+
+    								if(this.locationIsProxied) {
+    									attachment.url = Zotero.Ingester.ProxyMonitor.properToProxy(attachment.url);
+    								}
+
+    								var fileBaseName = Zotero.Attachments.getFileBaseNameFromItem(myID);
+    								try {
+    									Zotero.Attachments.importFromURL(attachment.url, myID, title, fileBaseName);
+    								} catch(e) {
+    									Zotero.debug("Zotero.Translate: error adding attachment "+attachment.url);
+    								}   
+							    }
 							}
 						}
 					}
