diff --git a/accounts/doctype/journal_voucher/test_journal_voucher.py b/accounts/doctype/journal_voucher/test_journal_voucher.py
index 6ade931..f80b945 100644
--- a/accounts/doctype/journal_voucher/test_journal_voucher.py
+++ b/accounts/doctype/journal_voucher/test_journal_voucher.py
@@ -34,16 +34,17 @@
 			where against_jv=%s""", jv_invoice.doc.name))
 	
 	def test_jv_against_stock_account(self):
-		webnotes.defaults.set_global_default("auto_accounting_for_stock", 1)
+		from stock.doctype.purchase_receipt.test_purchase_receipt import set_perpetual_inventory
+		set_perpetual_inventory()
 		
 		jv = webnotes.bean(copy=test_records[0])
-		jv.doclist[1].account = "_Test Account Stock in Hand - _TC"
+		jv.doclist[1].account = "_Test Warehouse - _TC"
 		jv.insert()
 		
 		from accounts.general_ledger import StockAccountInvalidTransaction
 		self.assertRaises(StockAccountInvalidTransaction, jv.submit)
 
-		webnotes.defaults.set_global_default("auto_accounting_for_stock", 0)
+		set_perpetual_inventory(0)
 			
 	def test_monthly_budget_crossed_ignore(self):
 		webnotes.conn.set_value("Company", "_Test Company", "monthly_bgt_flag", "Ignore")
diff --git a/accounts/doctype/purchase_invoice/test_purchase_invoice.py b/accounts/doctype/purchase_invoice/test_purchase_invoice.py
index 8826b3f..9e9e2f6 100644
--- a/accounts/doctype/purchase_invoice/test_purchase_invoice.py
+++ b/accounts/doctype/purchase_invoice/test_purchase_invoice.py
@@ -9,13 +9,14 @@
 import json	
 from webnotes.utils import cint
 import webnotes.defaults
+from stock.doctype.purchase_receipt.test_purchase_receipt import set_perpetual_inventory
 
 test_dependencies = ["Item", "Cost Center"]
 test_ignore = ["Serial No"]
 
 class TestPurchaseInvoice(unittest.TestCase):
 	def test_gl_entries_without_auto_accounting_for_stock(self):
-		webnotes.defaults.set_global_default("auto_accounting_for_stock", 0)
+		set_perpetual_inventory(0)
 		self.assertTrue(not cint(webnotes.defaults.get_global_default("auto_accounting_for_stock")))
 		
 		wrapper = webnotes.bean(copy=test_records[0])
@@ -42,7 +43,7 @@
 			self.assertEqual([d.debit, d.credit], expected_gl_entries.get(d.account))
 			
 	def test_gl_entries_with_auto_accounting_for_stock(self):
-		webnotes.defaults.set_global_default("auto_accounting_for_stock", 1)
+		set_perpetual_inventory(1)
 		self.assertEqual(cint(webnotes.defaults.get_global_default("auto_accounting_for_stock")), 1)
 		
 		pi = webnotes.bean(copy=test_records[1])
@@ -68,10 +69,10 @@
 			self.assertEquals(expected_values[i][1], gle.debit)
 			self.assertEquals(expected_values[i][2], gle.credit)
 		
-		webnotes.defaults.set_global_default("auto_accounting_for_stock", 0)
+		set_perpetual_inventory(0)
 
 	def test_gl_entries_with_aia_for_non_stock_items(self):
-		webnotes.defaults.set_global_default("auto_accounting_for_stock", 1)
+		set_perpetual_inventory()
 		self.assertEqual(cint(webnotes.defaults.get_global_default("auto_accounting_for_stock")), 1)
 		
 		pi = webnotes.bean(copy=test_records[1])
@@ -98,8 +99,7 @@
 			self.assertEquals(expected_values[i][0], gle.account)
 			self.assertEquals(expected_values[i][1], gle.debit)
 			self.assertEquals(expected_values[i][2], gle.credit)
-		
-		webnotes.defaults.set_global_default("auto_accounting_for_stock", 0)
+		set_perpetual_inventory(0)
 			
 	def test_purchase_invoice_calculation(self):
 		wrapper = webnotes.bean(copy=test_records[0])
diff --git a/accounts/general_ledger.py b/accounts/general_ledger.py
index acb1694..05c52db 100644
--- a/accounts/general_ledger.py
+++ b/accounts/general_ledger.py
@@ -91,8 +91,8 @@
 			
 def validate_account_for_auto_accounting_for_stock(gl_map):
 	if gl_map[0].voucher_type=="Journal Voucher":
-		aii_accounts = [d[0] for d in webnotes.conn.sql("""select account from tabWarehouse 
-			where ifnull(account, '')!=''""")]
+		aii_accounts = [d[0] for d in webnotes.conn.sql("""select name from tabAccount 
+			where account_type = 'Warehouse' and ifnull(master_name, '')!=''""")]
 		
 		for entry in gl_map:
 			if entry.account in aii_accounts:
