diff --git a/erpnext/accounts/doctype/share_transfer/share_transfer.py b/erpnext/accounts/doctype/share_transfer/share_transfer.py
index 1a1f036..e95c694 100644
--- a/erpnext/accounts/doctype/share_transfer/share_transfer.py
+++ b/erpnext/accounts/doctype/share_transfer/share_transfer.py
@@ -86,17 +86,23 @@
 				frappe.throw(_('The field From Shareholder cannot be blank'))
 			if self.from_folio_no is None or self.from_folio_no is '':
 				self.to_folio_no = self.autoname_folio(self.to_shareholder)
+			if self.asset_account is None:
+				frappe.throw(_('The field Asset Account cannot be blank'))
 		elif (self.transfer_type == 'Issue'):
 			self.from_shareholder = ''
 			if self.to_shareholder is None or self.to_shareholder == '':
 				frappe.throw(_('The field To Shareholder cannot be blank'))
 			if self.to_folio_no is None or self.to_folio_no is '':
 				self.to_folio_no = self.autoname_folio(self.to_shareholder)
+			if self.asset_account is None:
+				frappe.throw(_('The field Asset Account cannot be blank'))
 		else:
 			if self.from_shareholder is None or self.to_shareholder is None:
 				frappe.throw(_('The fields From Shareholder and To Shareholder cannot be blank'))
 			if self.to_folio_no is None or self.to_folio_no is '':
 				self.to_folio_no = self.autoname_folio(self.to_shareholder)
+		if self.equity_or_liability_account is None:
+				frappe.throw(_('The field Equity/Liability Account cannot be blank'))
 		if self.from_shareholder == self.to_shareholder:
 			frappe.throw(_('The seller and the buyer cannot be the same'))
 		if self.no_of_shares != self.to_no - self.from_no + 1:
diff --git a/erpnext/accounts/doctype/share_transfer/test_share_transfer.py b/erpnext/accounts/doctype/share_transfer/test_share_transfer.py
index f1cf31b..910dfd0 100644
--- a/erpnext/accounts/doctype/share_transfer/test_share_transfer.py
+++ b/erpnext/accounts/doctype/share_transfer/test_share_transfer.py
@@ -15,67 +15,74 @@
 		frappe.db.sql("delete from `tabShare Balance`")
 		share_transfers = [
 			{
-				"doctype"			: "Share Transfer",
-				"transfer_type"		: "Issue",
-				"date"				: "2018-01-01",
-				"to_shareholder"	: "SH-00001",
-				"share_type"		: "Equity",
-				"from_no"			: 1,
-				"to_no"				: 500,
-				"no_of_shares"		: 500,
-				"rate"				: 10,
-				"company"			: "_Test Company"
+				"doctype"					 : "Share Transfer",
+				"transfer_type"				 : "Issue",
+				"date"						 : "2018-01-01",
+				"to_shareholder"			 : "SH-00001",
+				"share_type"				 : "Equity",
+				"from_no"					 : 1,
+				"to_no"						 : 500,
+				"no_of_shares"				 : 500,
+				"rate"						 : 10,
+				"company"					 : "_Test Company",
+				"asset_account"				 : "Cash - _TC",
+				"equity_or_liability_account": "Creditors - _TC"
 			},
 			{
-				"doctype"			: "Share Transfer",
-				"transfer_type"		: "Transfer",
-				"date"				: "2018-01-02",
-				"from_shareholder"	: "SH-00001",
-				"to_shareholder"	: "SH-00002",
-				"share_type"		: "Equity",
-				"from_no"			: 101,
-				"to_no"				: 200,
-				"no_of_shares"		: 100,
-				"rate"				: 15,
-				"company"			: "_Test Company"
+				"doctype"					 : "Share Transfer",
+				"transfer_type"				 : "Transfer",
+				"date"						 : "2018-01-02",
+				"from_shareholder"			 : "SH-00001",
+				"to_shareholder"			 : "SH-00002",
+				"share_type"				 : "Equity",
+				"from_no"					 : 101,
+				"to_no"						 : 200,
+				"no_of_shares"				 : 100,
+				"rate"						 : 15,
+				"company"					 : "_Test Company",
+				"equity_or_liability_account": "Creditors - _TC"
 			},
 			{
-				"doctype"			: "Share Transfer",
-				"transfer_type"		: "Transfer",
-				"date"				: "2018-01-03",
-				"from_shareholder"	: "SH-00001",
-				"to_shareholder"	: "SH-00003",
-				"share_type"		: "Equity",
-				"from_no"			: 201,
-				"to_no"				: 500,
-				"no_of_shares"		: 300,
-				"rate"				: 20,
-				"company"			: "_Test Company"
+				"doctype"					 : "Share Transfer",
+				"transfer_type"				 : "Transfer",
+				"date"						 : "2018-01-03",
+				"from_shareholder"			 : "SH-00001",
+				"to_shareholder"			 : "SH-00003",
+				"share_type"				 : "Equity",
+				"from_no"					 : 201,
+				"to_no"						 : 500,
+				"no_of_shares"				 : 300,
+				"rate"						 : 20,
+				"company"					 : "_Test Company",
+				"equity_or_liability_account": "Creditors - _TC"
 			},
 			{
-				"doctype"			: "Share Transfer",
-				"transfer_type"		: "Transfer",
-				"date"				: "2018-01-04",
-				"from_shareholder"	: "SH-00003",
-				"to_shareholder"	: "SH-00002",
-				"share_type"		: "Equity",
-				"from_no"			: 201,
-				"to_no"				: 400,
-				"no_of_shares"		: 200,
-				"rate"				: 15,
-				"company"			: "_Test Company"
+				"doctype"					 : "Share Transfer",
+				"transfer_type"				 : "Transfer",
+				"date"						 : "2018-01-04",
+				"from_shareholder"			 : "SH-00003",
+				"to_shareholder"			 : "SH-00002",
+				"share_type"				 : "Equity",
+				"from_no"					 : 201,
+				"to_no"						 : 400,
+				"no_of_shares"				 : 200,
+				"rate"						 : 15,
+				"company"					 : "_Test Company",
+				"equity_or_liability_account": "Creditors - _TC"
 			},
 			{
-				"doctype"			: "Share Transfer",
-				"transfer_type"		: "Purchase",
-				"date"				: "2018-01-05",
-				"from_shareholder"	: "SH-00003",
-				"share_type"		: "Equity",
-				"from_no"			: 401,
-				"to_no"				: 500,
-				"no_of_shares"		: 100,
-				"rate"				: 25,
-				"company"			: "_Test Company"
+				"doctype"					 : "Share Transfer",
+				"transfer_type"				 : "Purchase",
+				"date"						 : "2018-01-05",
+				"from_shareholder"			 : "SH-00003",
+				"share_type"				 : "Equity",
+				"from_no"					 : 401,
+				"to_no"						 : 500,
+				"no_of_shares"				 : 100,
+				"rate"						 : 25,
+				"company"					 : "_Test Company",
+				"asset_account"				 : "Cash - _TC",
+				"equity_or_liability_account": "Creditors - _TC"
 			}
 		]
 		for d in share_transfers:
@@ -84,30 +91,33 @@
 
 	def test_invalid_share_transfer(self):
 		doc = frappe.get_doc({
-			"doctype"			: "Share Transfer",
-			"transfer_type"		: "Transfer",
-			"date"				: "2018-01-05",
-			"from_shareholder"	: "SH-00003",
-			"to_shareholder"	: "SH-00002",
-			"share_type"		: "Equity",
-			"from_no"			: 1,
-			"to_no"				: 100,
-			"no_of_shares"		: 100,
-			"rate"				: 15,
-			"company"			: "_Test Company"
+			"doctype"					 : "Share Transfer",
+			"transfer_type"				 : "Transfer",
+			"date"						 : "2018-01-05",
+			"from_shareholder"			 : "SH-00003",
+			"to_shareholder"			 : "SH-00002",
+			"share_type"				 : "Equity",
+			"from_no"					 : 1,
+			"to_no"						 : 100,
+			"no_of_shares"				 : 100,
+			"rate"						 : 15,
+			"company"					 : "_Test Company",
+			"equity_or_liability_account": "Creditors - _TC"
 		})
 		self.assertRaises(ShareDontExists, doc.insert)
 
 		doc = frappe.get_doc({
-			"doctype"			: "Share Transfer",
-			"transfer_type"		: "Purchase",
-			"date"				: "2018-01-02",
-			"from_shareholder"	: "SH-00001",
-			"share_type"		: "Equity",
-			"from_no"			: 1,
-			"to_no"				: 200,
-			"no_of_shares"		: 200,
-			"rate"				: 15,
-			"company"			: "_Test Company"
+			"doctype"					 : "Share Transfer",
+			"transfer_type"				 : "Purchase",
+			"date"						 : "2018-01-02",
+			"from_shareholder"			 : "SH-00001",
+			"share_type"				 : "Equity",
+			"from_no"					 : 1,
+			"to_no"						 : 200,
+			"no_of_shares"				 : 200,
+			"rate"						 : 15,
+			"company"					 : "_Test Company",
+			"asset_account"				 : "Cash - _TC",
+			"equity_or_liability_account": "Creditors - _TC"
 		})
 		self.assertRaises(ShareDontExists, doc.insert)
