diff --git a/erpnext/__version__.py b/erpnext/__version__.py
index 3a54c17..2a74e29 100644
--- a/erpnext/__version__.py
+++ b/erpnext/__version__.py
@@ -1,2 +1,2 @@
 from __future__ import unicode_literals
-__version__ = '6.3.0'
+__version__ = '6.3.1'
diff --git a/erpnext/accounts/doctype/tax_rule/tax_rule.py b/erpnext/accounts/doctype/tax_rule/tax_rule.py
index bcbd559..bff1898 100644
--- a/erpnext/accounts/doctype/tax_rule/tax_rule.py
+++ b/erpnext/accounts/doctype/tax_rule/tax_rule.py
@@ -18,32 +18,24 @@
 
 	def validate(self):
 		self.validate_tax_template()
-		self.validate_customer_group()
-		self.validate_supplier_type()
 		self.validate_date()
 		self.validate_filters()
 
 	def validate_tax_template(self):
 		if self.tax_type== "Sales":
 			self.purchase_tax_template = self.supplier = self.supplier_type= None
+			if self.customer:
+				self.customer_group = None
+
 		else:
 			self.sales_tax_template= self.customer = self.customer_group= None
 
+			if self.supplier:
+				self.supplier_type = None
+
 		if not (self.sales_tax_template or self.purchase_tax_template):
 			frappe.throw(_("Tax Template is mandatory."))
 
-	def validate_customer_group(self):
-		if self.customer and self.customer_group:
-			if not frappe.db.get_value("Customer", self.customer, "customer_group") == self.customer_group:
-				frappe.throw(_("Customer {0} does not belong to customer group {1}"). \
-					format(self.customer, self.customer_group), IncorrectCustomerGroup)
-
-	def validate_supplier_type(self):
-		if self.supplier and self.supplier_type:
-			if not frappe.db.get_value("Supplier", self.supplier, "supplier_type") == self.supplier_type:
-				frappe.throw(_("Supplier {0} does not belong to Supplier Type {1}"). \
-					format(self.supplier, self.supplier_type), IncorrectSupplierType)
-
 	def validate_date(self):
 		if self.from_date and self.to_date and self.from_date > self.to_date:
 			frappe.throw(_("From Date cannot be greater than To Date"))
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index f6daf77..e5e3903 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -29,7 +29,7 @@
 """
 app_icon = "icon-th"
 app_color = "#e74c3c"
-app_version = "6.3.0"
+app_version = "6.3.1"
 github_link = "https://github.com/frappe/erpnext"
 
 error_report_email = "support@erpnext.com"
diff --git a/erpnext/patches/v5_8/tax_rule.py b/erpnext/patches/v5_8/tax_rule.py
index b710ddc..80a2364 100644
--- a/erpnext/patches/v5_8/tax_rule.py
+++ b/erpnext/patches/v5_8/tax_rule.py
@@ -5,23 +5,25 @@
 import frappe
 
 def execute():
-	customers = frappe.db.sql("""select name, default_taxes_and_charges from tabCustomer where 
+	frappe.reload_doc("accounts", "doctype", "tax_rule")
+
+	customers = frappe.db.sql("""select name, default_taxes_and_charges from tabCustomer where
 		ifnull(default_taxes_and_charges, '') != '' """, as_dict=1)
-		
+
 	for d in customers:
 		tr = frappe.new_doc("Tax Rule")
 		tr.tax_type = "Sales"
 		tr.customer = d.name
 		tr.sales_tax_template = d.default_taxes_and_charges
 		tr.save()
-		
 
-	suppliers = frappe.db.sql("""select name, default_taxes_and_charges from tabSupplier where 
+
+	suppliers = frappe.db.sql("""select name, default_taxes_and_charges from tabSupplier where
 		ifnull(default_taxes_and_charges, '') != '' """, as_dict=1)
-		
+
 	for d in suppliers:
 		tr = frappe.new_doc("Tax Rule")
 		tr.tax_type = "Purchase"
 		tr.supplier = d.name
 		tr.purchase_tax_template = d.default_taxes_and_charges
-		tr.save()
\ No newline at end of file
+		tr.save()
diff --git a/erpnext/patches/v6_3/convert_applicable_territory.py b/erpnext/patches/v6_3/convert_applicable_territory.py
index 483bf8a..b693ce5 100644
--- a/erpnext/patches/v6_3/convert_applicable_territory.py
+++ b/erpnext/patches/v6_3/convert_applicable_territory.py
@@ -1,12 +1,15 @@
 import frappe
 
 def execute():
+	frappe.reload_doc("stock", "doctype", "price_list_country")
+	frappe.reload_doc("accounts", "doctype", "shipping_rule_country")
+	frappe.reload_doctype("Price List")
+	frappe.reload_doctype("Shipping Rule")
+
 	# for price list
 	countries = frappe.db.sql_list("select name from tabCountry")
 
 	for doctype in ("Price List", "Shipping Rule"):
-		frappe.reload_doctype(doctype)
-
 		for at in frappe.db.sql("""select name, parent, territory from `tabApplicable Territory` where
 			parenttype = %s """, doctype, as_dict=True):
 			if at.territory in countries:
diff --git a/setup.py b/setup.py
index 0b52322..a6c2164 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
 from setuptools import setup, find_packages
 
-version = "6.3.0"
+version = "6.3.1"
 
 with open("requirements.txt", "r") as f:
 	install_requires = f.readlines()
