diff --git a/erpnext/demo/setup/setup_data.py b/erpnext/demo/setup/setup_data.py
index 41f24e1..dbb6594 100644
--- a/erpnext/demo/setup/setup_data.py
+++ b/erpnext/demo/setup/setup_data.py
@@ -293,7 +293,7 @@
 	}).insert()
 
 def setup_mode_of_payment():
-	company_abbr = frappe.db.get_value("Company", erpnext.get_default_company(), "abbr")
+	company_abbr = frappe.get_cached_value('Company',  erpnext.get_default_company(),  "abbr")
 	account_dict = {'Cash': 'Cash - '+ company_abbr , 'Bank': 'National Bank - '+ company_abbr}
 	for payment_mode in frappe.get_all('Mode of Payment', fields = ["name", "type"]):
 		if payment_mode.type:
@@ -317,7 +317,7 @@
 	frappe.flags.in_import = False
 
 def setup_account_to_expense_type():
-	company_abbr = frappe.db.get_value("Company", erpnext.get_default_company(), "abbr")
+	company_abbr = frappe.get_cached_value('Company',  erpnext.get_default_company(),  "abbr")
 	expense_types = [{'name': _('Calls'), "account": "Sales Expenses - "+ company_abbr},
 		{'name': _('Food'), "account": "Entertainment Expenses - "+ company_abbr},
 		{'name': _('Medical'), "account": "Utility Expenses - "+ company_abbr},
@@ -354,7 +354,7 @@
 		budget.submit()
 
 def setup_pos_profile():
-	company_abbr = frappe.db.get_value("Company", erpnext.get_default_company(), "abbr")
+	company_abbr = frappe.get_cached_value('Company',  erpnext.get_default_company(),  "abbr")
 	pos = frappe.new_doc('POS Profile')
 	pos.user = frappe.db.get_global('demo_accounts_user')
 	pos.pos_profile_name = "Demo POS Profile"
diff --git a/erpnext/demo/user/accounts.py b/erpnext/demo/user/accounts.py
index 1a41482..a12933b 100644
--- a/erpnext/demo/user/accounts.py
+++ b/erpnext/demo/user/accounts.py
@@ -28,7 +28,7 @@
 				si.posting_date = frappe.flags.current_date
 				for d in si.get("items"):
 					if not d.income_account:
-						d.income_account = "Sales - {}".format(frappe.db.get_value('Company', si.company, 'abbr'))
+						d.income_account = "Sales - {}".format(frappe.get_cached_value('Company',  si.company,  'abbr'))
 				si.insert()
 				si.submit()
 				frappe.db.commit()
@@ -106,7 +106,7 @@
 		si.posting_date = frappe.flags.current_date
 		for d in si.get("items"):
 			if not d.income_account:
-				d.income_account = "Sales - {}".format(frappe.db.get_value('Company', si.company, 'abbr'))
+				d.income_account = "Sales - {}".format(frappe.get_cached_value('Company',  si.company,  'abbr'))
 		si.set_missing_values()
 		make_payment_entries_for_pos_invoice(si)
 		si.insert()
diff --git a/erpnext/demo/user/manufacturing.py b/erpnext/demo/user/manufacturing.py
index a3f631c..0231eda9 100644
--- a/erpnext/demo/user/manufacturing.py
+++ b/erpnext/demo/user/manufacturing.py
@@ -78,7 +78,7 @@
 		st.posting_date = frappe.flags.current_date
 		st.fiscal_year = str(frappe.flags.current_date.year)
 		for d in st.get("items"):
-			d.cost_center = "Main - " + frappe.db.get_value('Company', st.company, 'abbr')
+			d.cost_center = "Main - " + frappe.get_cached_value('Company',  st.company,  'abbr')
 		st.insert()
 		frappe.db.commit()
 		st.submit()
diff --git a/erpnext/demo/user/purchase.py b/erpnext/demo/user/purchase.py
index 327f617..ad99de9 100644
--- a/erpnext/demo/user/purchase.py
+++ b/erpnext/demo/user/purchase.py
@@ -51,7 +51,7 @@
 	# get supplier details
 	supplier = get_random("Supplier")
 
-	company_currency = frappe.db.get_value("Company", "Wind Power LLC", "default_currency")
+	company_currency = frappe.get_cached_value('Company',  "Wind Power LLC",  "default_currency")
 	party_account_currency = get_party_account_currency("Supplier", supplier, "Wind Power LLC")
 	if company_currency == party_account_currency:
 		exchange_rate = 1
diff --git a/erpnext/demo/user/sales.py b/erpnext/demo/user/sales.py
index 02e1d42..65d7f55 100644
--- a/erpnext/demo/user/sales.py
+++ b/erpnext/demo/user/sales.py
@@ -84,7 +84,7 @@
 		# get customer, currency and exchange_rate
 		customer = get_random("Customer")
 
-		company_currency = frappe.db.get_value("Company", "Wind Power LLC", "default_currency")
+		company_currency = frappe.get_cached_value('Company',  "Wind Power LLC",  "default_currency")
 		party_account_currency = get_party_account_currency("Customer", customer, "Wind Power LLC")
 		if company_currency == party_account_currency:
 			exchange_rate = 1
diff --git a/erpnext/demo/user/stock.py b/erpnext/demo/user/stock.py
index f5ec4f9..a6b0e00 100644
--- a/erpnext/demo/user/stock.py
+++ b/erpnext/demo/user/stock.py
@@ -55,7 +55,7 @@
 			for d in dn.get("items"):
 				if not d.expense_account:
 					d.expense_account = ("Cost of Goods Sold - {0}".format(
-						frappe.db.get_value('Company', dn.company, 'abbr')))
+						frappe.get_cached_value('Company',  dn.company,  'abbr')))
 			dn.insert()
 			try:
 				dn.submit()
