diff --git a/erpnext/setup/doctype/naming_series/naming_series.py b/erpnext/setup/doctype/naming_series/naming_series.py
index 9278139..bd6b708 100644
--- a/erpnext/setup/doctype/naming_series/naming_series.py
+++ b/erpnext/setup/doctype/naming_series/naming_series.py
@@ -12,15 +12,27 @@
 class NamingSeries(Document):
 
 	def get_transactions(self, arg=None):
+		doctypes = list(set(frappe.db.sql_list("""select parent
+				from `tabDocField` where fieldname='naming_series'""")
+			+ frappe.db.sql_list("""select dt from `tabCustom Field`
+				where fieldname='naming_series'""")))
+
+		prefixes = ""
+		for d in doctypes:
+			print d
+			try:
+				options = self.get_options(d)
+			except frappe.DoesNotExistError:
+				continue
+
+			prefixes = prefixes + "\n" + options
+
+		prefixes.replace("\n\n", "\n")
+		prefixes = "\n".join(sorted(prefixes.split()))
+
 		return {
-			"transactions": "\n".join([''] + sorted(list(set(
-				frappe.db.sql_list("""select parent
-					from `tabDocField` where fieldname='naming_series'""")
-				+ frappe.db.sql_list("""select dt from `tabCustom Field`
-					where fieldname='naming_series'""")
-				)))),
-			"prefixes": "\n".join([''] + [i[0] for i in
-				frappe.db.sql("""select name from tabSeries order by name""")])
+			"transactions": "\n".join([''] + sorted(doctypes)),
+			"prefixes": prefixes
 		}
 
 	def scrub_options_list(self, ol):
@@ -110,8 +122,8 @@
 		if not re.match("^[a-zA-Z0-9- /.#]*$", n):
 			throw(_('Special Characters except "-" and "/" not allowed in naming series'))
 
-	def get_options(self, arg=''):
-		return frappe.get_meta(self.select_doc_for_series).get_field("naming_series").options
+	def get_options(self, arg=None):
+		return frappe.get_meta(arg or self.select_doc_for_series).get_field("naming_series").options
 
 	def get_current(self, arg=None):
 		"""get series current"""
