diff --git a/erpnext/accounts/doctype/journal_voucher/journal_voucher.py b/erpnext/accounts/doctype/journal_voucher/journal_voucher.py
index 9884b57..5727ed4 100644
--- a/erpnext/accounts/doctype/journal_voucher/journal_voucher.py
+++ b/erpnext/accounts/doctype/journal_voucher/journal_voucher.py
@@ -389,19 +389,12 @@
 	jv.doc.company = doc.company
 	jv.doc.fiscal_year = doc.fiscal_year
 
-	jv.doclist.append({
-		"doctype": "Journal Voucher Detail",
-		"parentfield": "entries"
-	})
+	d1 = jv.append("entries")
+	d2 = jv.append("entries")
 
-	jv.doclist.append({
-		"doctype": "Journal Voucher Detail",
-		"parentfield": "entries"
-	})
-	
 	if bank_account:
-		jv.doclist[2].account = bank_account["account"]
-		jv.doclist[2].balance = bank_account["balance"]
+		d2.account = bank_account["account"]
+		d2.balance = bank_account["balance"]
 	
 	return jv
 	
diff --git a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
index 28bd2d1..c648c37 100644
--- a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
@@ -174,9 +174,7 @@
 		jv.submit()
 		
 		pi = frappe.bean(copy=test_records[0])
-		pi.doclist.append({
-			"doctype": "Purchase Invoice Advance",
-			"parentfield": "advance_allocation_details",
+		pi.append("advance_allocation_details", {
 			"journal_voucher": jv.doc.name,
 			"jv_detail_no": jv.doclist[1].name,
 			"advance_amount": 400,
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 068d82c..c61df0e 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -9,7 +9,7 @@
 	get_first_day, get_last_day
 
 from frappe.utils import comma_and, get_url
-from frappe.model.doc import make_autoname
+from frappe.model.naming import make_autoname
 from frappe.model.bean import getlist
 from frappe.model.code import get_obj
 from frappe import _, msgprint
@@ -587,12 +587,6 @@
 				invoice_date = %s, territory = %s, net_total = %s,
 				grand_total = %s where invoice_no = %s and parent = %s""", 
 				(self.doc.name, self.doc.amended_from, self.doc.c_form_no))
-
-	@property
-	def meta(self):
-		if not hasattr(self, "_meta"):
-			self._meta = frappe.get_doctype(self.doc.doctype)
-		return self._meta
 	
 	def validate_recurring_invoice(self):
 		if self.doc.convert_into_recurring_invoice:
diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
index a4a1f7b..1c67e71 100644
--- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
@@ -139,16 +139,14 @@
 	def test_sales_invoice_discount_amount(self):
 		si = frappe.bean(copy=test_records[3])
 		si.doc.discount_amount = 104.95
-		si.doclist.append({
+		si.append("other_charges", {
 			"doctype": "Sales Taxes and Charges",
-			"parentfield": "other_charges",
 			"charge_type": "On Previous Row Amount",
 			"account_head": "_Test Account Service Tax - _TC",
 			"cost_center": "_Test Cost Center - _TC",
 			"description": "Service Tax",
 			"rate": 10,
 			"row_id": 8,
-			"idx": 9
 		})
 		si.insert()
 		
@@ -196,16 +194,14 @@
 	def test_discount_amount_gl_entry(self):
 		si = frappe.bean(copy=test_records[3])
 		si.doc.discount_amount = 104.95
-		si.doclist.append({
+		si.append("other_charges", {
 			"doctype": "Sales Taxes and Charges",
-			"parentfield": "other_charges",
 			"charge_type": "On Previous Row Amount",
 			"account_head": "_Test Account Service Tax - _TC",
 			"cost_center": "_Test Cost Center - _TC",
 			"description": "Service Tax",
 			"rate": 10,
-			"row_id": 8,
-			"idx": 9
+			"row_id": 8
 		})
 		si.insert()
 		si.submit()
@@ -369,7 +365,7 @@
 		from erpnext.accounts.doctype.journal_voucher.test_journal_voucher \
 			import test_records as jv_test_records
 			
-		jv = frappe.bean(frappe.copy_doclist(jv_test_records[0]))
+		jv = frappe.bean(frappe.copy_doc(jv_test_records[0]))
 		jv.doclist[1].against_invoice = w.doc.name
 		jv.insert()
 		jv.submit()
@@ -385,7 +381,7 @@
 		tlb = frappe.bean("Time Log Batch", "_T-Time Log Batch-00001")
 		tlb.submit()
 		
-		si = frappe.bean(frappe.copy_doclist(test_records[0]))
+		si = frappe.bean(frappe.copy_doc(test_records[0]))
 		si.doclist[1].time_log_batch = "_T-Time Log Batch-00001"
 		si.insert()
 		si.submit()
@@ -444,7 +440,7 @@
 		self._insert_purchase_receipt()
 		self._insert_pos_settings()
 		
-		pos = frappe.copy_doclist(test_records[1])
+		pos = frappe.copy_doc(test_records[1])
 		pos[0]["is_pos"] = 1
 		pos[0]["update_stock"] = 1
 		pos[0]["posting_time"] = "12:05"
@@ -510,7 +506,7 @@
 		pr.insert()
 		pr.submit()
 		
-		si_doclist = frappe.copy_doclist(test_records[1])
+		si_doclist = frappe.copy_doc(test_records[1])
 		si_doclist[0]["update_stock"] = 1
 		si_doclist[0]["posting_time"] = "12:05"
 		si_doclist[1]["warehouse"] = "_Test Warehouse No Account - _TC"
@@ -555,7 +551,7 @@
 		self.clear_stock_account_balance()
 		set_perpetual_inventory()
 				
-		si_copy = frappe.copy_doclist(test_records[1])
+		si_copy = frappe.copy_doc(test_records[1])
 		si_copy[1]["item_code"] = None
 		si = frappe.bean(si_copy)		
 		si.insert()
@@ -582,7 +578,7 @@
 	def test_sales_invoice_gl_entry_with_aii_non_stock_item(self):
 		self.clear_stock_account_balance()
 		set_perpetual_inventory()
-		si_copy = frappe.copy_doclist(test_records[1])
+		si_copy = frappe.copy_doc(test_records[1])
 		si_copy[1]["item_code"] = "_Test Non Stock Item"
 		si = frappe.bean(si_copy)
 		si.insert()
@@ -640,9 +636,8 @@
 		jv.submit()
 		
 		si = frappe.bean(copy=test_records[0])
-		si.doclist.append({
+		si.append("advance_adjustment_details", {
 			"doctype": "Sales Invoice Advance",
-			"parentfield": "advance_adjustment_details",
 			"journal_voucher": jv.doc.name,
 			"jv_detail_no": jv.doclist[1].name,
 			"advance_amount": 400,
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index 3805ec3..260344c 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -242,7 +242,7 @@
 	
 	if not value:
 		throw(_("Please mention default value for '") + 
-			_(frappe.get_doctype("company").get_label(fieldname) + 
+			_(frappe.get_meta("Company").get_label(fieldname) + 
 			_("' in Company: ") + company))
 			
 	return value
