diff --git a/erpnext/accounts/doctype/subscriptions/subscriptions.py b/erpnext/accounts/doctype/subscriptions/subscriptions.py
index d2bda3d..6b6fc5f 100644
--- a/erpnext/accounts/doctype/subscriptions/subscriptions.py
+++ b/erpnext/accounts/doctype/subscriptions/subscriptions.py
@@ -28,7 +28,10 @@
 			self.current_invoice_start = self.trial_period_start
 
 	def set_current_invoice_end(self):
-		self.current_invoice_end = get_last_day(self.current_invoice_start)
+		if self.is_trialling():
+			self.current_invoice_end = self.trial_period_end
+		else:
+			self.current_invoice_end = get_last_day(self.current_invoice_start)
 
 	def before_save(self):
 		self.set_status()
diff --git a/erpnext/accounts/doctype/subscriptions/test_subscriptions.py b/erpnext/accounts/doctype/subscriptions/test_subscriptions.py
index 27f67e4..65c9423 100644
--- a/erpnext/accounts/doctype/subscriptions/test_subscriptions.py
+++ b/erpnext/accounts/doctype/subscriptions/test_subscriptions.py
@@ -5,6 +5,57 @@
 
 import frappe
 import unittest
+from frappe.utils.data import nowdate, add_days, get_last_day
+
 
 class TestSubscriptions(unittest.TestCase):
-	pass
+	def create_plan(self):
+		if not frappe.db.exists('Subscription Plan', '_Test Plan Name'):
+			plan = frappe.new_doc('Subscription Plan')
+			plan.plan_name = '_Test Plan Name'
+			plan.item = '_Test Non Stock Item'
+			plan.cost = 999.99
+			plan.billing_interval = 'Month'
+			plan.billing_interval_count = 1
+			plan.insert()
+
+	def create_subscriber(self):
+		if not frappe.db.exists('Subscriber', '_Test Customer'):
+			subscriber = frappe.new_doc('Subscriber')
+			subscriber.subscriber_name = '_Test Customer'
+			subscriber.customer = '_Test Customer'
+			subscriber.insert()
+
+	def setUp(self):
+		self.create_plan()
+		self.create_subscriber()
+
+	def test_create_subscription_with_trial_with_correct_period(self):
+		subscription = frappe.new_doc('Subscriptions')
+		subscription.subscriber = '_Test Customer'
+		subscription.trial_period_start = nowdate()
+		subscription.trial_period_end = add_days(nowdate(), 30)
+		subscription.append('plans', {'plan': '_Test Plan Name'})
+		subscription.save()
+
+		self.assertEqual(subscription.trial_period_start, nowdate())
+		self.assertEqual(subscription.trial_period_end, add_days(nowdate(), 30))
+		self.assertEqual(subscription.trial_period_start, subscription.current_invoice_start)
+		self.assertEqual(subscription.trial_period_end, subscription.current_invoice_end)
+		self.assertEqual(subscription.invoices, [])
+
+		subscription.delete()
+
+	def test_create_subscription_without_trial_with_correct_period(self):
+		subscription = frappe.new_doc('Subscriptions')
+		subscription.subscriber = '_Test Customer'
+		subscription.append('plans', {'plan': '_Test Plan Name'})
+		subscription.save()
+
+		self.assertEqual(subscription.trial_period_start, None)
+		self.assertEqual(subscription.trial_period_end, None)
+		self.assertEqual(subscription.current_invoice_start, nowdate())
+		self.assertEqual(subscription.current_invoice_end, get_last_day(nowdate()))
+		self.assertEqual(len(subscription.invoices), 1)
+
+		subscription.delete()
\ No newline at end of file
