diff --git a/erpnext/controllers/recurring_document.py b/erpnext/controllers/recurring_document.py
index fa6c1cc..d34002b 100644
--- a/erpnext/controllers/recurring_document.py
+++ b/erpnext/controllers/recurring_document.py
@@ -85,12 +85,9 @@
 
 	# get last day of the month to maintain period if the from date is first day of its own month
 	# and to date is the last day of its own month
-	if (cstr(get_first_day(ref_wrapper.from_date)) == \
-			cstr(ref_wrapper.from_date)) and \
-		(cstr(get_last_day(ref_wrapper.to_date)) == \
-			cstr(ref_wrapper.to_date)):
-		to_date = get_last_day(get_next_date(ref_wrapper.to_date,
-			mcount))
+	if (cstr(get_first_day(ref_wrapper.from_date)) == cstr(ref_wrapper.from_date)) and \
+		(cstr(get_last_day(ref_wrapper.to_date)) == cstr(ref_wrapper.to_date)):
+			to_date = get_last_day(get_next_date(ref_wrapper.to_date, mcount))
 	else:
 		to_date = get_next_date(ref_wrapper.to_date, mcount)
 
diff --git a/erpnext/controllers/tests/test_recurring_document.py b/erpnext/controllers/tests/test_recurring_document.py
index 3d005ff..ef8d5fb 100644
--- a/erpnext/controllers/tests/test_recurring_document.py
+++ b/erpnext/controllers/tests/test_recurring_document.py
@@ -5,11 +5,10 @@
 import frappe
 import frappe.permissions
 from erpnext.controllers.recurring_document import date_field_map
-from frappe.utils import getdate
+from frappe.utils import get_first_day, get_last_day, add_to_date, nowdate, getdate, add_days
+from erpnext.accounts.utils import get_fiscal_year
 
 def test_recurring_document(obj, test_records):
-	from frappe.utils import get_first_day, get_last_day, add_to_date, nowdate, getdate, add_days
-	from erpnext.accounts.utils import get_fiscal_year
 	frappe.db.set_value("Print Settings", "Print Settings", "send_print_as_pdf", 1)
 	today = nowdate()
 	base_doc = frappe.copy_doc(test_records[0])
@@ -38,14 +37,15 @@
 	_test_recurring_document(obj, doc1, date_field, True)
 
 	# monthly without a first and last day period
-	doc2 = frappe.copy_doc(base_doc)
-	doc2.update({
-		"from_date": today,
-		"to_date": add_to_date(today, days=30)
-	})
-	doc2.insert()
-	doc2.submit()
-	_test_recurring_document(obj, doc2, date_field, False)
+	if getdate(today).day != 1:
+		doc2 = frappe.copy_doc(base_doc)
+		doc2.update({
+			"from_date": today,
+			"to_date": add_to_date(today, days=30)
+		})
+		doc2.insert()
+		doc2.submit()
+		_test_recurring_document(obj, doc2, date_field, False)
 
 	# quarterly
 	doc3 = frappe.copy_doc(base_doc)
