diff --git a/erpnext/setup/doctype/naming_series/naming_series.py b/erpnext/setup/doctype/naming_series/naming_series.py
index d6e7ea7..536b72f 100644
--- a/erpnext/setup/doctype/naming_series/naming_series.py
+++ b/erpnext/setup/doctype/naming_series/naming_series.py
@@ -8,6 +8,7 @@
 from frappe import msgprint, throw, _
 
 from frappe.model.document import Document
+from frappe.model.naming import parse_naming_series
 from frappe.permissions import get_doctypes_with_read
 
 class NamingSeriesNotSetError(frappe.ValidationError): pass
@@ -136,8 +137,9 @@
 	def get_current(self, arg=None):
 		"""get series current"""
 		if self.prefix:
+			prefix = self.parse_naming_series()
 			self.current_value = frappe.db.get_value("Series",
-				self.prefix.split('.')[0], "current", order_by = "name")
+				prefix, "current", order_by = "name")
 
 	def insert_series(self, series):
 		"""insert series if missing"""
@@ -146,7 +148,7 @@
 
 	def update_series_start(self):
 		if self.prefix:
-			prefix = self.prefix.split('.')[0]
+			prefix = self.parse_naming_series()
 			self.insert_series(prefix)
 			frappe.db.sql("update `tabSeries` set current = %s where name = %s",
 				(self.current_value, prefix))
@@ -154,6 +156,17 @@
 		else:
 			msgprint(_("Please select prefix first"))
 
+	def parse_naming_series(self):
+		parts = self.prefix.split('.')
+		# If series contain date format like INV.YYYY.MM.#####
+		if len(parts) > 2:
+			del parts[-1] # Removed ### from the series
+			prefix = parse_naming_series(parts)
+		else:
+			prefix = parts[0]
+
+		return prefix
+
 def set_by_naming_series(doctype, fieldname, naming_series, hide_name_field=True):
 	from frappe.custom.doctype.property_setter.property_setter import make_property_setter
 	if naming_series:
