diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index 020f843..a9348c1 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -5,7 +5,7 @@
 from erpnext.hooks import regional_overrides
 from frappe.utils import getdate
 
-__version__ = '12.0.0'
+__version__ = '12.0.1'
 
 def get_default_company(user=None):
 	'''Get default company for user'''
diff --git a/erpnext/accounts/doctype/account/account.py b/erpnext/accounts/doctype/account/account.py
index 68efe37..0e57b3f 100644
--- a/erpnext/accounts/doctype/account/account.py
+++ b/erpnext/accounts/doctype/account/account.py
@@ -123,7 +123,9 @@
 				doc.flags.ignore_root_company_validation = True
 				doc.update({
 					"company": company,
-					"account_currency": None,
+					# parent account's currency should be passed down to child account's curreny
+					# if it is None, it picks it up from default company currency, which might be unintended
+					"account_currency": self.account_currency,
 					"parent_account": parent_acc_name_map[company]
 				})
 				doc.save()
diff --git a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
index 1923f78..63317c5 100644
--- a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
+++ b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
@@ -58,8 +58,7 @@
 		{
 			"fieldname": "payment_document",
 			"label": _("Payment Document Type"),
-			"fieldtype": "Link",
-			"options": "DocType",
+			"fieldtype": "Data",
 			"width": 220
 		},
 		{
diff --git a/erpnext/regional/report/gstr_1/gstr_1.py b/erpnext/regional/report/gstr_1/gstr_1.py
index e8c170e..2da1085 100644
--- a/erpnext/regional/report/gstr_1/gstr_1.py
+++ b/erpnext/regional/report/gstr_1/gstr_1.py
@@ -161,8 +161,9 @@
 					"gst_category": ["in", ["Registered Regular", "Deemed Export", "SEZ"]]
 			})
 
-			conditions += """ and ifnull(gst_category, '') != 'Overseas' and is_return != 1
-				and customer in ({0})""".format(", ".join([frappe.db.escape(c.name) for c in customers]))
+			if customers:
+				conditions += """ and ifnull(gst_category, '') != 'Overseas' and is_return != 1
+					and customer in ({0})""".format(", ".join([frappe.db.escape(c.name) for c in customers]))
 
 		if self.filters.get("type_of_business") in ("B2C Large", "B2C Small"):
 			b2c_limit = frappe.db.get_single_value('GST Settings', 'b2c_limit')
@@ -174,11 +175,11 @@
 				"gst_category": ["in", ["Unregistered"]]
 		})
 
-		if self.filters.get("type_of_business") ==  "B2C Large":
+		if self.filters.get("type_of_business") ==  "B2C Large" and customers:
 			conditions += """ and SUBSTR(place_of_supply, 1, 2) != SUBSTR(company_gstin, 1, 2)
 				and grand_total > {0} and is_return != 1 and customer in ({1})""".\
 					format(flt(b2c_limit), ", ".join([frappe.db.escape(c.name) for c in customers]))
-		elif self.filters.get("type_of_business") ==  "B2C Small":
+		elif self.filters.get("type_of_business") ==  "B2C Small" and customers:
 			conditions += """ and (
 				SUBSTR(place_of_supply, 1, 2) = SUBSTR(company_gstin, 1, 2)
 					or grand_total <= {0}) and is_return != 1 and customer in ({1})""".\
diff --git a/erpnext/setup/doctype/item_group/item_group.py b/erpnext/setup/doctype/item_group/item_group.py
index 8fbeac8..cab2116 100644
--- a/erpnext/setup/doctype/item_group/item_group.py
+++ b/erpnext/setup/doctype/item_group/item_group.py
@@ -69,8 +69,7 @@
 			"items": get_product_list_for_group(product_group = self.name, start=start,
 				limit=context.page_length + 1, search=frappe.form_dict.get("search")),
 			"parents": get_parent_item_groups(self.parent_item_group),
-			"title": self.name,
-			"products_as_list": cint(frappe.db.get_single_value('Products Settings', 'products_as_list'))
+			"title": self.name
 		})
 
 		if self.slideshow:
diff --git a/erpnext/setup/install.py b/erpnext/setup/install.py
index 03da833..5e85f7d 100644
--- a/erpnext/setup/install.py
+++ b/erpnext/setup/install.py
@@ -22,6 +22,7 @@
 	add_all_roles_to("Administrator")
 	create_default_cash_flow_mapper_templates()
 	create_default_success_action()
+	add_company_to_session_defaults()
 	frappe.db.commit()
 
 
@@ -84,3 +85,10 @@
 		if not frappe.db.exists('Success Action', success_action.get("ref_doctype")):
 			doc = frappe.get_doc(success_action)
 			doc.insert(ignore_permissions=True)
+
+def add_company_to_session_defaults():
+	settings = frappe.get_single("Session Default Settings")
+	settings.append("session_defaults", {
+		"ref_doctype": "Company"
+	})
+	settings.save()
