diff --git a/erpnext/accounts/doctype/asset/asset.py b/erpnext/accounts/doctype/asset/asset.py
index 1118766..b28aaa9 100644
--- a/erpnext/accounts/doctype/asset/asset.py
+++ b/erpnext/accounts/doctype/asset/asset.py
@@ -15,8 +15,8 @@
 	def validate(self):
 		self.status = self.get_status()
 		self.validate_item()
+		self.set_missing_values()
 		self.validate_asset_values()
-		self.set_depreciation_settings()
 		self.make_depreciation_schedule()
 		self.validate_expected_value_after_useful_life()
 		# Validate depreciation related accounts
@@ -41,10 +41,18 @@
 			frappe.throw(_("Item {0} must be a Fixed Asset Item").format(self.item_code))
 		elif item.is_stock_item:
 			frappe.throw(_("Item {0} must be a non-stock item").format(self.item_code))
+			
+	def set_missing_values(self):
+		if self.item_code:
+			item_details = get_item_details(self.item_code)
+			for field, value in item_details.items():
+				if not self.get(field):
+					self.set(field, value)
+					
+		self.value_after_depreciation = (flt(self.gross_purchase_amount) - 
+			flt(self.opening_accumulated_depreciation))
 
 	def validate_asset_values(self):
-		self.value_after_depreciation = flt(self.gross_purchase_amount) - flt(self.opening_accumulated_depreciation)
-		
 		if flt(self.expected_value_after_useful_life) >= flt(self.gross_purchase_amount):
 			frappe.throw(_("Expected Value After Useful Life must be less than Gross Purchase Amount"))
 
@@ -77,15 +85,6 @@
 		if (flt(self.value_after_depreciation) > flt(self.expected_value_after_useful_life) 
 			and not self.next_depreciation_date):
 				frappe.throw(_("Please set Next Depreciation Date"))
-			
-		
-
-	def set_depreciation_settings(self):
-		asset_category = frappe.get_doc("Asset Category", self.asset_category)
-
-		for field in ("depreciation_method", "total_number_of_depreciations", "frequency_of_depreciation"):
-			if not self.get(field):
-				self.set(field, asset_category.get(field))
 
 	def make_depreciation_schedule(self):
 		self.schedules = []
