diff --git a/erpnext/support/doctype/newsletter/newsletter.py b/erpnext/support/doctype/newsletter/newsletter.py
index 88040e2..aaf4ddf 100644
--- a/erpnext/support/doctype/newsletter/newsletter.py
+++ b/erpnext/support/doctype/newsletter/newsletter.py
@@ -8,11 +8,12 @@
 from frappe.utils import cstr
 from frappe import throw, _
 from frappe.model.document import Document
+import erpnext.tasks
 
 class Newsletter(Document):
 	def onload(self):
 		if self.email_sent:
-			self.get("__onload").status_count = dict(frappe.db.sql("""select status, count(*)
+			self.get("__onload").status_count = dict(frappe.db.sql("""select status, count(name)
 				from `tabBulk Email` where ref_doctype=%s and ref_docname=%s
 				group by status""", (self.doctype, self.name))) or None
 
@@ -28,7 +29,13 @@
 			throw(_("Newsletter has already been sent"))
 
 		self.recipients = self.get_recipients()
-		self.send_bulk()
+
+		if frappe.local.is_ajax:
+			# to avoid request timed out!
+			self.validate_send()
+			erpnext.tasks.send_newsletter.delay(frappe.local.site, self.name)
+		else:
+			self.send_bulk()
 
 		frappe.msgprint(_("Scheduled to send to {0} recipients").format(len(self.recipients)))
 
@@ -77,6 +84,10 @@
 			return email_list
 
 	def send_bulk(self):
+		if not self.get("recipients"):
+			# in case it is called via worker
+			self.recipients = self.get_recipients()
+
 		self.validate_send()
 
 		sender = self.send_from or frappe.utils.get_formatted_email(self.owner)
@@ -98,10 +109,6 @@
 		if self.get("__islocal"):
 			throw(_("Please save the Newsletter before sending"))
 
-		from frappe import conf
-		if (conf.get("status") or None) == "Trial":
-			throw(_("Newsletters is not allowed for Trial users"))
-
 @frappe.whitelist()
 def get_lead_options():
 	return {
diff --git a/erpnext/tasks.py b/erpnext/tasks.py
new file mode 100644
index 0000000..da2ab03
--- /dev/null
+++ b/erpnext/tasks.py
@@ -0,0 +1,29 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# MIT License. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.celery_app import celery_task, task_logger
+
+@celery_task()
+def send_newsletter(site, newsletter):
+	try:
+		frappe.connect(site=site)
+		doc = frappe.get_doc("Newsletter", newsletter)
+		doc.send_bulk()
+
+	except:
+		frappe.db.rollback()
+		task_logger.warn(frappe.get_traceback())
+
+		# wasn't able to send emails :(
+		doc.db_set("email_sent", 0)
+		frappe.db.commit()
+
+		raise
+
+	else:
+		frappe.db.commit()
+
+	finally:
+		frappe.destroy()
