patch fix
diff --git a/erpnext/crm/doctype/newsletter_list/newsletter_list.py b/erpnext/crm/doctype/newsletter_list/newsletter_list.py
index ba0eec7..e4ba6b1 100644
--- a/erpnext/crm/doctype/newsletter_list/newsletter_list.py
+++ b/erpnext/crm/doctype/newsletter_list/newsletter_list.py
@@ -7,6 +7,7 @@
 from frappe.model.document import Document
 from frappe.utils import validate_email_add, strip
 from frappe import _
+from email.utils import parseaddr
 
 class NewsletterList(Document):
 	def onload(self):
@@ -23,7 +24,7 @@
 
 		for user in frappe.db.get_all(doctype, [email_field, unsubscribed_field or "name"]):
 			try:
-				email = strip(user.get(email_field))
+				email = parseaddr(user.get(email_field))[1]
 				if email:
 					frappe.get_doc({
 						"doctype": "Newsletter List Subscriber",
diff --git a/erpnext/patches/v4_2/party_model.py b/erpnext/patches/v4_2/party_model.py
index e88bc9e..ad56109 100644
--- a/erpnext/patches/v4_2/party_model.py
+++ b/erpnext/patches/v4_2/party_model.py
@@ -96,8 +96,19 @@
 				frappe.db.commit()
 
 def delete_individual_party_account():
-	frappe.db.sql("""delete from `tabAccount` where ifnull(master_type, '') in ('Customer', 'Supplier')
-		and ifnull(master_name, '') != ''""")
+	frappe.db.sql("""delete from `tabAccount` acc 
+		where ifnull(acc.master_type, '') in ('Customer', 'Supplier')
+		and ifnull(acc.master_name, '') != '' 
+		and not exists(select gle.name from `tabGL Entry` gle where gle.account = acc.name)""")
+		
+	accounts_not_deleted = frappe.db.sql_list("""select name from `tabAccount` acc 
+		where ifnull(acc.master_type, '') in ('Customer', 'Supplier')
+		and ifnull(acc.master_name, '') != '' 
+		and exists(select gle.name from `tabGL Entry` gle where gle.account = acc.name)""")
+		
+	if accounts_not_deleted:
+		print "Accounts not deleted: " + "\n".join(accounts_not_deleted)
+		
 
 def remove_customer_supplier_account_report():
 	for d in ["Customer Account Head", "Supplier Account Head"]: