diff --git a/accounts/doctype/pos_setting/pos_setting.txt b/accounts/doctype/pos_setting/pos_setting.txt
index 2420ad5..7eda7fd 100755
--- a/accounts/doctype/pos_setting/pos_setting.txt
+++ b/accounts/doctype/pos_setting/pos_setting.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 12:15:51", 
   "docstatus": 0, 
-  "modified": "2013-08-28 19:13:42", 
+  "modified": "2013-10-15 11:12:02", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -82,16 +82,6 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "conversion_rate", 
-  "fieldtype": "Float", 
-  "label": "Conversion Rate", 
-  "oldfieldname": "conversion_rate", 
-  "oldfieldtype": "Currency", 
-  "read_only": 0, 
-  "reqd": 1
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "selling_price_list", 
   "fieldtype": "Link", 
   "label": "Price List", 
diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index 5220c0f..46e336f 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -147,7 +147,6 @@
 				});
 			}
 		}
-
 	},
 	
 	debit_to: function() {
diff --git a/accounts/doctype/sales_invoice/sales_invoice.txt b/accounts/doctype/sales_invoice/sales_invoice.txt
index 516d192..b168ba6 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.txt
+++ b/accounts/doctype/sales_invoice/sales_invoice.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:05", 
   "docstatus": 0, 
-  "modified": "2013-10-03 18:54:31", 
+  "modified": "2013-10-11 13:12:38", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -225,7 +225,6 @@
   "reqd": 1
  }, 
  {
-  "default": "1.00", 
   "description": "Rate at which Customer Currency is converted to customer's base currency", 
   "doctype": "DocField", 
   "fieldname": "conversion_rate", 
diff --git a/controllers/accounts_controller.py b/controllers/accounts_controller.py
index 927b249..3af9c7a 100644
--- a/controllers/accounts_controller.py
+++ b/controllers/accounts_controller.py
@@ -52,7 +52,7 @@
 						msgprint(_("Account for this ") + fieldname + _(" has been freezed. ") + 
 							self.doc.doctype + _(" can not be made."), raise_exception=1)
 			
-	def set_price_list_currency(self, buying_or_selling):
+	def set_price_list_currency(self, buying_or_selling, for_validate=False):
 		if self.meta.get_field("currency"):
 			company_currency = get_company_currency(self.doc.company)
 			
@@ -60,14 +60,13 @@
 			fieldname = "selling_price_list" if buying_or_selling.lower() == "selling" \
 				else "buying_price_list"
 			if self.meta.get_field(fieldname) and self.doc.fields.get(fieldname):
-				if not self.doc.price_list_currency:
-					self.doc.price_list_currency = webnotes.conn.get_value("Price List",
-						self.doc.fields.get(fieldname), "currency")
+				self.doc.price_list_currency = webnotes.conn.get_value("Price List",
+					self.doc.fields.get(fieldname), "currency")
 				
 				if self.doc.price_list_currency == company_currency:
 					self.doc.plc_conversion_rate = 1.0
 
-				elif not self.doc.plc_conversion_rate:
+				elif not self.doc.plc_conversion_rate or not for_validate:
 					self.doc.plc_conversion_rate = self.get_exchange_rate(
 						self.doc.price_list_currency, company_currency)
 			
@@ -77,7 +76,7 @@
 				self.doc.conversion_rate = self.doc.plc_conversion_rate
 			elif self.doc.currency == company_currency:
 				self.doc.conversion_rate = 1.0
-			elif not self.doc.conversion_rate:
+			elif not self.doc.conversion_rate or not for_validate:
 				self.doc.conversion_rate = self.get_exchange_rate(self.doc.currency,
 					company_currency)
 
diff --git a/controllers/buying_controller.py b/controllers/buying_controller.py
index 25d76aa..1115b49 100644
--- a/controllers/buying_controller.py
+++ b/controllers/buying_controller.py
@@ -30,7 +30,7 @@
 		super(BuyingController, self).set_missing_values(for_validate)
 
 		self.set_supplier_from_item_default()
-		self.set_price_list_currency("Buying")
+		self.set_price_list_currency("Buying", for_validate)
 		
 		# set contact and address details for supplier, if they are not mentioned
 		if self.doc.supplier and not (self.doc.contact_person and self.doc.supplier_address):
diff --git a/controllers/selling_controller.py b/controllers/selling_controller.py
index 37674ee..845ba85 100644
--- a/controllers/selling_controller.py
+++ b/controllers/selling_controller.py
@@ -20,7 +20,7 @@
 		
 		# set contact and address details for customer, if they are not mentioned
 		self.set_missing_lead_customer_details()
-		self.set_price_list_and_item_details()
+		self.set_price_list_and_item_details(for_validate)
 		if self.doc.fields.get("__islocal"):
 			self.set_taxes("other_charges", "charge")
 					
@@ -38,8 +38,8 @@
 					if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname):
 						self.doc.fields[fieldname] = val
 						
-	def set_price_list_and_item_details(self):
-		self.set_price_list_currency("Selling")
+	def set_price_list_and_item_details(self, for_validate=False):
+		self.set_price_list_currency("Selling", for_validate)
 		self.set_missing_item_details(get_item_details)
 										
 	def get_other_charges(self):
diff --git a/docs/user/accounts/docs.user.accounts.pos.md b/docs/user/accounts/docs.user.accounts.pos.md
index 654a5d6..7bd668e 100644
--- a/docs/user/accounts/docs.user.accounts.pos.md
+++ b/docs/user/accounts/docs.user.accounts.pos.md
@@ -13,33 +13,34 @@
 
 - Update Stock: If this is checked, Stock Ledger Entries will be made when you “Submit” this Sales Invoice thereby eliminating the need for a separate Delivery Note. 
 - In your Items table, update inventory information like Warehouse  (saved as default), Serial Number, or Batch Number if applicable. 
-- Update Payment Details like your Bank / Cash Account, paid amount etc. 
+- Update Payment Details like your Bank / Cash Account, Paid amount etc. 
 - If you are writing off certain amount. For example when you receive extra cash as a result of not having exact denomination of change, check on ‘Write off Outstanding Amount’ and set the Account.
 
-Setup [POS Setting](docs.user.setup.pos_setting.html)
 
 #### Enable POS View
 
-Sales Invoice has 2 different interfaces, Invoice View and POS View. The current view used by most users is the Invoice View. This view is preferred by non-retailing companies.The POS view is used by retailing companies. For retailers it is very important to provide bill or sales invoice at the point of sale. Their customers cannot wait to receive the bill by post. The customers want an immediate bill for the payment which they make. In such cases, the POS View is preferred.
+- Every Sales & Purchase documents has 2 different interfaces, Invoice View and POS View. The current view used by most users is the Invoice View. This view is preferred by non-retailing companies.The POS view is used by retailing companies. For retailers it is very important to provide bill or sales invoice at the point of sale. Their customers cannot wait to receive the bill by post. The customers want an immediate bill for the payment which they make. In such cases, the POS View is preferred.
 
  > Setup  > Show/Hide Features
 
 ![POS View](img/pos-features-setup.png)
 
+- Setup [POS Setting](docs.user.setup.pos_setting.html)
+
 ### Adding an Item
 
-At the billing counter, the retailer needs to select Items which the consumer buys. In the POS interface you can select an Item by two methods. One, is by clicking on the Item image and the other, is through the Barcode. 
+At the billing counter, the retailer needs to select Items which the consumer buys. In the POS interface you can select an Item by two methods. One, is by clicking on the Item image and the other, is through the Barcode / Serial No. 
 
 **Select Item** - To select a  product click on the Item image and add it into the cart. A cart is an area that prepares a customer for checkout by allowing to edit product information, adjust taxes and add discounts.
 
-**Barcode** - A Barcode is an optical machine-readable representation of data relating to the object to which it is attached. Enter Barcode in the barcode box and pause for a second. The  Item will be automatically added to the cart.
+**Barcode / Serial No** - A Barcode / Serial No is an optical machine-readable representation of data relating to the object to which it is attached. Enter Barcode / Serial No in the box as shown in the image below and pause for a second, the item will be automatically added to the cart.
 
 ![POS](img/pos-add-item.png)
 
 > Tip: To change the quantity of an Item, enter your desired quantity in the quantity box. These are mostly used if the same Item is purchased in bulk.
 
 
-If your product list is very long use the universal search field, to type the  product name and select faster. 
+If your product list is very long use the Search field, type the product name in Search box. 
 
 ### Removing an Item
 
@@ -48,7 +49,7 @@
 - Select an Item by clicking on the row of that Item from Item cart. Then click on “Del” button. OR
 
 
-- Type 0 in  the ‘select quantity’ field to delete the record.
+- Enter 0(zero) quantity of any item to delete that item.
 
 To remove multiple Items together, select multiple rows & click on “Del” button. 
 
@@ -62,11 +63,11 @@
 
 1. Click on “Make Payment” to get the Payment window.
 1. Select your “Mode of Payment”.
-1. Click on “Pay” button to Save the Sales Invoice.
+1. Click on “Pay” button to Save the document.
 
 ![POS Payment](img/pos-make-payment.png)
 
-Submit the document to finalise the record. After the Invoice is submitted, you can either print an invoice or email it directly to the customer.
+Submit the document to finalise the record. After the document is submitted, you can either print or email it directly to the customer.
 
 #### Accounting entries (GL Entry) for a Point of Sale:
 
diff --git a/docs/user/five_day_setup/docs.user.five_day_setup.day_1.md b/docs/user/five_day_setup/docs.user.five_day_setup.day_1.md
index 9f39810..bbb8b86 100644
--- a/docs/user/five_day_setup/docs.user.five_day_setup.day_1.md
+++ b/docs/user/five_day_setup/docs.user.five_day_setup.day_1.md
@@ -10,10 +10,8 @@
 #### Form Part I
 
 ![1st Form](img/firstdaysetup-1.png)
-<br>
+<br><br>
 #### Form Part II
-<br>
-
 To understand about Company Financial Year or Fiscal Year visit [Fiscal Year](docs.user.knowledge.fiscal_year.html)
 
 
@@ -61,8 +59,6 @@
 
 <br>
 #### Setup Page - Suppliers
-<br>
-
 On the Setup page go to Supplier.
 
 ![Supplier](img/firstdaysetup-supplier.png)
diff --git a/docs/user/five_day_setup/docs.user.five_day_setup.day_2.md b/docs/user/five_day_setup/docs.user.five_day_setup.day_2.md
index d2e826f..f016623 100644
--- a/docs/user/five_day_setup/docs.user.five_day_setup.day_2.md
+++ b/docs/user/five_day_setup/docs.user.five_day_setup.day_2.md
@@ -4,8 +4,8 @@
 }
 ---
 
-#### Setup Page- Accounts 
-
+#### Setup Page - Accounts
+<br>
 Go to the Accounts icon and make ledgers under Chart of Accounts.
 
 ![Accounts](img/seconddaysetup-accounts.png)
@@ -21,8 +21,6 @@
 
 To begin Opening Entries, go to 'Opening Accounts and Stock' on the Setup Page. 
 
-<br>
-
 ![Ledger](img/seconddaysetup-accounts-jv.png)
 
 <br>
@@ -30,6 +28,8 @@
 
 To understand how to create opening entries in detail visit [Opening Entry](docs.user.setup.opening.html).
 
+<br>
+
 #### Opening Stock
 
 You can upload your opening stock in the system using Stock Reconciliation. Stock Reconciliation will update your stock for any given Item. 
@@ -40,6 +40,7 @@
 
 To understand Stock Opening in detail visit [Opening Stock](docs.user.accounts.opening_stock.html).
 
+<br>
 
 #### Setup Page - HR Setup
 
diff --git a/docs/user/five_day_setup/docs.user.five_day_setup.day_3.md b/docs/user/five_day_setup/docs.user.five_day_setup.day_3.md
index 4a15f5c..e0c4114 100644
--- a/docs/user/five_day_setup/docs.user.five_day_setup.day_3.md
+++ b/docs/user/five_day_setup/docs.user.five_day_setup.day_3.md
@@ -8,8 +8,10 @@
 
 ### Sales Cycle
 
-Complete a standard sales cycle - Lead > Opportunity > Quotation > Sales Order > Delivery Note > Sales Invoice > Payment (Journal Voucher)
+Complete a standard Sales Cycle.
+> Lead > Opportunity > Quotation > Sales Order > Delivery Note > Sales Invoice > Payment (Journal Voucher)
 
+<br>
 #### Lead
 
 To begin the sales cycle, go to the Selling Icon. On the selling page, click on Lead. 
@@ -20,6 +22,7 @@
 
 > To understand Lead in detail, visit [Lead](docs.user.selling.lead.html)
 
+<br>
 #### Opportunity
 
 After completing the Lead form, assume that, this same lead is getting converted into an Opportunity. Thus, to create an Opportunity from the existing lead, click on Create Opportunity, on the Lead page.
@@ -38,7 +41,7 @@
 
 > To understand Opportunity in detail visit [Opportunity](docs.user.selling.opportunity.html).
 
-
+<br>
 #### Quotation
 
 Imagine that your Opportunity has shown interest and asked for a Quotation. To generate a Quotation from the same Opportunity, open the submitted Opportunity and click on Create Quotation.
@@ -49,7 +52,7 @@
 
 > To understand Quotation in detail visit [Quotation](docs.user.selling.quotation.html)
 
-
+<br>
 #### Sales Order
 
 Imagine that the Quotation which you sent was accepted by the prospect. You are now  reequired to send him a Sales Order. To make a sales order from this same Quotation, go to that Quotation page and click on Make Sales Order.
@@ -60,6 +63,7 @@
 
 > To understand Sales Order in detail visit [Sales Order](docs.user.selling.sales_order.html).
 
+<br>
 #### Delivery Note
 
 If your organisation has the practice of sending Delivery Note, this section will be helpful. To create a Delivery Note from the a Sales Order, go to that Sales Order and click on Make Delivery.
@@ -69,7 +73,7 @@
 
 > To understand Delivery Note in detail, visit [Delivery Note](docs.user.stock.delivery_note.html)
 
-
+<br>
 #### Sales Invoice
 
 Save and Submit your Delivery Note to generate a Sales Invoice. You can also generate an Invoice from Sales Order.
@@ -91,9 +95,10 @@
 
 ### Purchase Cycle
 
-Complete a standard purchase cycle - Material Request > Purchase Order > Purchase Receipt > Payment (Journal Voucher).
+Complete a standard Purchase Cycle.
+> Material Request > Purchase Order > Purchase Receipt > Payment (Journal Voucher).
 
-
+<br>
 #### Material Request
 
 To create a Material Request, go to Stock/Buying and Click on Material Request.
@@ -102,6 +107,7 @@
 
 > To understand Material Request in detail, visit [Material Request](docs.user.buying.material_request.html)
 
+<br>
 #### Purchase Order
 
 To create a Purchase Order go to Buying and click on Purchase Order
@@ -110,26 +116,24 @@
 
 > To understand Purchase Order in detail, visit [Purchase Order](docs.user.buying.purchase_order.html)
 
+<br>
 #### Purchase Receipt
 
 To create a Purchase Receipt from an existing Purchase Order, open that purchase order and click on Make Purchase Receipt.
 
 ![Purchase Receipt](img/thirddaysetup-purchase-receipt.png)
-
 <br>
 
 >To understand Purchase Receipt in detail, visit [Purchase Receipt](docs.user.stock.purchase_receipt.html)
 
 <br>
 
-#### Payment( Journal Voucher)
+#### Payment (Journal Voucher)
 
 Payments made against Sales Invoices or Purchase Invoices can be made by clicking on “Make Payment Entry” button on “Submitted” invoices.
 
 
 ![Payment Entry](img/thirddaysetup-payment-entry.png)
-
 <br>
 
 > To understand Payment Entry in detail, visit [Payment Entry](docs.user.accounts.payments.html).
-
diff --git a/docs/user/five_day_setup/docs.user.five_day_setup.day_4.md b/docs/user/five_day_setup/docs.user.five_day_setup.day_4.md
index cdd43f0..af6e636 100644
--- a/docs/user/five_day_setup/docs.user.five_day_setup.day_4.md
+++ b/docs/user/five_day_setup/docs.user.five_day_setup.day_4.md
@@ -6,81 +6,71 @@
 
 ### Manufacturing Cycle
 
-Complete a manufacturing cycle (if applicable) - BOM > Production Planning Tool > Production Order > Stock Entry (material issue) > Stock Entry (sales return)
+Complete a manufacturing cycle (if applicable).
+> BOM > Production Planning Tool > Production Order > Stock Entry (Material Issue) > Stock Entry (Sales Return)
 
+<br>
 #### Bill of Materials
 
 To go to Bill of Materials, Click on Manufacturing. On the Manufacturing page, click on Bill of Materials.
 
 ![Bill of Materials](img/fourthdaysetup-bom.png)
 
-<br>
-
 > To understand BOM in detail, visit [Bill of Materials](docs.user.mfg.bom.html)
 
+<br>
 #### Production Planning Tool
 
 To go to Production Planning Tool, click on the Manufacturing Icon. On the Manufacturing Page, click on Production Planning Tool to go to that page.
 
 ![Production Planning Page](img/fourthdaysetup-ppt.png)
 
-<br>
-
 > To understand Production Planning Tool in detail, visit [Production Planning](docs.user.mfg.planning.html)
 
-
+<br>
 #### Production Order
 
 To go to Production Order click on the Manufacturing Icon. On the Manufacturing Page, click on Production Order.
 
 ![Production Order](img/fourthdaysetup-po.png)
 
-<br>
-
 > To understand Production Order in detail, visit [Production Order](docs.user.mfg.production_order.html)
 
+<br>
 #### Stock Entry
 
 To go to Stock Entry, click on the Stock Icon and go to Stock Entry.
 
 ![Stock Entry](img/fourthdaysetup-stock.png)
 
+> To understand Material Issue, visit [Material Issue](docs.user.stock.material_issue.html).
+
+> To understand Sales Return, visit [Sales Return](docs.user.stock.sales_return.html).
+
 <br>
-
-> To understand Material Issue, visit [Material Issue](docs.user.stock.material_issue.html)
-
-
-> To understand Sales Return, visit [Sales Return](docs.user.stock.sales_return.html)
-
-
 #### Delivery Note
 
 To go to Delivery Note, click on Stock. On the Stock Page, click on Delivery Note.
 
 ![Delivery Note](img/fourthdaysetup-delivery-note.png)
 
-<br>
-
 > To understand Delivery Note in detail, visit [Delivery Note](docs.user.stock.delivery_note.html)
 
-
-
+<br>
 #### Warehouse
 
 To go to Warehouse, Click on Stock. On the Stock Page, go to Warehouse.
 
 ![Warehouse](img/fourthdaysetup-warehouse.png)
 
+> To understand Warehouse in detail, visit [Warehouse](docs.user.stock.warehouse.html)
+
 <br>
-
-> To understand Warehouse in detail, visit  [Warehouse](docs.user.stock.warehouse.html)
-
-
 #### Accounts
 
 Make a few Journal Vouchers. Generate some Accounting Reports.
 
-#### Journal Voucher.
+#### Journal Voucher
 
 To go to a Journal Voucher, click on Accounts. On the Accounts page, click on Journal Voucher.
 
@@ -88,9 +78,9 @@
 
 > To understand Journal Voucher in detail, visit [Journal Voucher](docs.user.accounts.journal_voucher.html)
 
-#### Accounting Reports
+<br>
+### Accounting Reports
 
 Some of the major Accounting Reports are General Ledger, Trial Balance, Accounts  Payable and Accounts Receivables, and Sales and Purchase Register.
 
 > To be able to generate these accounts, visti [Accounting Reports](docs.user.accounts.report.html)
-
diff --git a/docs/user/five_day_setup/docs.user.five_day_setup.day_5.md b/docs/user/five_day_setup/docs.user.five_day_setup.day_5.md
index d0572db..db386a0 100644
--- a/docs/user/five_day_setup/docs.user.five_day_setup.day_5.md
+++ b/docs/user/five_day_setup/docs.user.five_day_setup.day_5.md
@@ -1,6 +1,6 @@
 ---
 {
-	"_label": "Day-5: Projects Calendar and Website"
+	"_label": "Day-5: Projects, Calendar, and Website"
 }
 ---
 
@@ -8,6 +8,7 @@
 
 ERPNext helps you to manage your Projects by breaking them into Tasks and allocating them to different people.
 
+<br>
 #### Tasks
 
 Project is divided into Tasks and each Task is allocated to a resource. In ERPNext, you can also create and allocate a Task independently of a Project.
@@ -16,19 +17,16 @@
 
 ![Tasks](img/fifthdaysetup-tasks.png)
 
-<br>
-
-
-> To understand Projects in detail, visit [Projects](docs.user.projects.html)
+> To understand Projects in detail, visit [Projects](docs.user.projects.html).
 
 > To understand Task in detail, visit [Tasks](docs.user.projects.tasks.html)
 
+<br>
 #### Calendar
 
 > To understand Calendar in detail, visit [Calendar](docs.user.tools.calendar.html)
 
-
+<br>
 #### Website
 
 > To understand Website in detail, visit [Website](docs.user.website.html)
-
diff --git a/docs/user/five_day_setup/docs.user.five_day_setup.md b/docs/user/five_day_setup/docs.user.five_day_setup.md
index d296914..90aeb56 100644
--- a/docs/user/five_day_setup/docs.user.five_day_setup.md
+++ b/docs/user/five_day_setup/docs.user.five_day_setup.md
@@ -45,5 +45,4 @@
 
 - Projects
 - Calendar
-- Website
-
+- Website
\ No newline at end of file
diff --git a/docs/user/knowledge/docs.user.knowledge.attachment_csv.md b/docs/user/knowledge/docs.user.knowledge.attachment_csv.md
index 311934d..eecc42d 100644
--- a/docs/user/knowledge/docs.user.knowledge.attachment_csv.md
+++ b/docs/user/knowledge/docs.user.knowledge.attachment_csv.md
@@ -1,6 +1,6 @@
 ---
 {
-	"_label": "Attachement and CSV files"
+	"_label": "Attachment and CSV files"
 }
 ---
 
diff --git a/docs/user/setup/docs.user.setup.md b/docs/user/setup/docs.user.setup.md
index fa9680a..585811f 100644
--- a/docs/user/setup/docs.user.setup.md
+++ b/docs/user/setup/docs.user.setup.md
@@ -18,7 +18,7 @@
 		"docs.user.setup.email",
 		"docs.user.setup.sms",
 		"docs.user.setup.taxes",
-		"docs.user.setup.price_lists",
+		"docs.user.setup.price_list",
 		"docs.user.setup.opening",
 		"docs.user.setup.pos_setting",
 		"docs.user.setup.third_party_backups"
diff --git a/docs/user/setup/docs.user.setup.price_list.md b/docs/user/setup/docs.user.setup.price_list.md
index 021df09..7214fff 100644
--- a/docs/user/setup/docs.user.setup.price_list.md
+++ b/docs/user/setup/docs.user.setup.price_list.md
@@ -7,7 +7,7 @@
 
 An Item can have multiple prices based on customer, currency, region, shipping cost etc, which can be stored as different rate plans. In ERPNext, you are required to store all the lists seperately. Buying Price List is different from Selling Price List and thus is stored separately. 
 
-> Selling > Price List
+> Setup > Price List
 
 
 ![Price-List](img/price-lists.png)
@@ -15,7 +15,14 @@
 
 > For multiple currencies, maintain multiple Price Lists.
 
+<br>
+### Add Item in Price List
 
-To add a new Item to the Price List, add the Item Code and its rate in the Item Prices table.
+> Setup > Item Price
 
-You can also import Item Prices via [Data Import Tool](docs.user.setup.data_import.html)
\ No newline at end of file
+- Enter Price List and Item Code, Valid for Buying or Selling, Item Name & Item Description will be automatically fetched.
+- Enter Rate and save the document.
+
+![Item-Price](img/item-price.png)
+
+For bulk upload of Item Prices, use [Data Import Tool](docs.user.setup.data_import.html)
\ No newline at end of file
diff --git a/public/js/transaction.js b/public/js/transaction.js
index e12d108..79ea536 100644
--- a/public/js/transaction.js
+++ b/public/js/transaction.js
@@ -21,8 +21,6 @@
 				company: wn.defaults.get_default("company"),
 				fiscal_year: wn.defaults.get_default("fiscal_year"),
 				is_subcontracted: "No",
-				conversion_rate: 1.0,
-				plc_conversion_rate: 1.0
 			}, function(fieldname, value) {
 				if(me.frm.fields_dict[fieldname] && !me.frm.doc[fieldname])
 					me.frm.set_value(fieldname, value);
@@ -41,18 +39,19 @@
 	},
 	
 	onload_post_render: function() {
-		if(this.frm.doc.__islocal && this.frm.doc.company && !this.frm.doc.customer) {
-			var me = this;
-			return this.frm.call({
-				doc: this.frm.doc,
-				method: "onload_post_render",
-				freeze: true,
-				callback: function(r) {
-					// remove this call when using client side mapper
-					me.set_default_values();
-					me.set_dynamic_labels();
-				}
-			});
+		if(this.frm.doc.__islocal && this.frm.doc.company && 
+			!this.frm.doc.customer && !this.frm.doc.is_pos) {
+				var me = this;
+				return this.frm.call({
+					doc: this.frm.doc,
+					method: "onload_post_render",
+					freeze: true,
+					callback: function(r) {
+						// remove this call when using client side mapper
+						me.set_default_values();
+						me.set_dynamic_labels();
+					}
+				});
 		}
 	},
 	
@@ -131,10 +130,18 @@
 	
 	company: function() {
 		if(this.frm.doc.company && this.frm.fields_dict.currency) {
-			if(!this.frm.doc.currency) {
-				this.frm.set_value("currency", this.get_company_currency());
+			var company_currency = this.get_company_currency();
+			if (!this.frm.doc.currency) {
+				this.frm.set_value("currency", company_currency);
 			}
 			
+			if (this.frm.doc.currency == company_currency) {
+				this.frm.set_value("conversion_rate", 1.0);
+			}
+			if (this.frm.doc.price_list_currency == company_currency) {
+				this.frm.set_value('plc_conversion_rate', 1.0);
+			}
+
 			this.frm.script_manager.trigger("currency");
 		}
 	},
@@ -146,15 +153,13 @@
 	currency: function() {
 		var me = this;
 		this.set_dynamic_labels();
-		
+
 		var company_currency = this.get_company_currency();
 		if(this.frm.doc.currency !== company_currency) {
 			this.get_exchange_rate(this.frm.doc.currency, company_currency, 
 				function(exchange_rate) {
-					if(exchange_rate) {
-						me.frm.set_value("conversion_rate", exchange_rate);
-						me.conversion_rate();
-					}
+					me.frm.set_value("conversion_rate", exchange_rate);
+					me.conversion_rate();
 				});
 		} else {
 			this.conversion_rate();		
@@ -168,7 +173,7 @@
 			this.frm.doc.plc_conversion_rate !== this.frm.doc.conversion_rate) {
 				this.frm.set_value("plc_conversion_rate", this.frm.doc.conversion_rate);
 		}
-		
+
 		this.calculate_taxes_and_totals();
 	},
 	
@@ -233,29 +238,6 @@
 		this.calculate_taxes_and_totals();
 	},
 
-	// serial_no: function(doc, cdt, cdn) {
-	// 	var me = this;
-	// 	var item = wn.model.get_doc(cdt, cdn);
-	// 	if (!item.item_code) {
-	// 		wn.call({
-	// 			method: 'accounts.doctype.sales_invoice.pos.get_item_from_serial_no',
-	// 			args: {serial_no: this.serial_no.$input.val()},
-	// 			callback: function(r) {
-	// 				if (r.message) {
-	// 					var item_code = r.message[0].item_code;
-	// 					var child = wn.model.add_child(me.frm.doc, this.frm.doctype + " Item", 
-	// 						this.frm.cscript.fname);
-	// 							child.item_code = item_code;
-	// 							me.frm.cscript.item_code(me.frm.doc, child.doctype, child.name);
-	// 				}
-	// 				else
-	// 					msgprint(wn._("Invalid Serial No."));
-	// 				me.refresh();
-	// 			}
-	// 		});
-	// 	}
-	// },
-	
 	row_id: function(doc, cdt, cdn) {
 		var tax = wn.model.get_doc(cdt, cdn);
 		try {
@@ -486,12 +468,8 @@
 		}
 		
 		var company_currency = this.get_company_currency();
-		var valid_conversion_rate = this.frm.doc.conversion_rate ?
-			((this.frm.doc.currency == company_currency && this.frm.doc.conversion_rate == 1.0) ||
-			(this.frm.doc.currency != company_currency && this.frm.doc.conversion_rate != 1.0)) :
-			false;
 		
-		if(!valid_conversion_rate) {
+		if(!this.frm.doc.conversion_rate) {
 			wn.throw(wn._("Please enter valid") + " " + wn._(conversion_rate_label) + 
 				" 1 " + this.frm.doc.currency + " = [?] " + company_currency);
 		}
diff --git a/selling/doctype/quotation/quotation.txt b/selling/doctype/quotation/quotation.txt
index 3f97c98..62c36b4 100644
--- a/selling/doctype/quotation/quotation.txt
+++ b/selling/doctype/quotation/quotation.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:08", 
   "docstatus": 0, 
-  "modified": "2013-09-10 10:46:33", 
+  "modified": "2013-10-11 13:21:07", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -257,7 +257,6 @@
   "width": "100px"
  }, 
  {
-  "default": "1.00", 
   "description": "Rate at which customer's currency is converted to company's base currency", 
   "doctype": "DocField", 
   "fieldname": "conversion_rate", 
diff --git a/selling/doctype/sales_order/sales_order.txt b/selling/doctype/sales_order/sales_order.txt
index 94e6388..46a06b5 100644
--- a/selling/doctype/sales_order/sales_order.txt
+++ b/selling/doctype/sales_order/sales_order.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-06-18 12:39:59", 
   "docstatus": 0, 
-  "modified": "2013-08-09 14:46:17", 
+  "modified": "2013-10-11 13:18:47", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -272,7 +272,6 @@
   "width": "100px"
  }, 
  {
-  "default": "1.00", 
   "description": "Rate at which customer's currency is converted to company's base currency", 
   "doctype": "DocField", 
   "fieldname": "conversion_rate", 
diff --git a/stock/doctype/delivery_note/delivery_note.txt b/stock/doctype/delivery_note/delivery_note.txt
index f1493bb..6834365 100644
--- a/stock/doctype/delivery_note/delivery_note.txt
+++ b/stock/doctype/delivery_note/delivery_note.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:09", 
   "docstatus": 0, 
-  "modified": "2013-08-09 14:46:32", 
+  "modified": "2013-10-11 13:19:40", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -230,7 +230,7 @@
   "depends_on": "eval:doc.po_no", 
   "doctype": "DocField", 
   "fieldname": "po_date", 
-  "fieldtype": "Data", 
+  "fieldtype": "Date", 
   "hidden": 1, 
   "label": "Customer's Purchase Order Date", 
   "no_copy": 0, 
@@ -263,7 +263,6 @@
   "reqd": 1
  }, 
  {
-  "default": "1.00", 
   "description": "Rate at which customer's currency is converted to company's base currency", 
   "doctype": "DocField", 
   "fieldname": "conversion_rate", 
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.txt b/stock/doctype/purchase_receipt/purchase_receipt.txt
index 1184643..f228a14 100755
--- a/stock/doctype/purchase_receipt/purchase_receipt.txt
+++ b/stock/doctype/purchase_receipt/purchase_receipt.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-21 16:16:39", 
   "docstatus": 0, 
-  "modified": "2013-08-09 14:47:05", 
+  "modified": "2013-10-11 13:20:13", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -215,7 +215,6 @@
   "reqd": 1
  }, 
  {
-  "default": "1.00", 
   "description": "Rate at which supplier's currency is converted to company's base currency", 
   "doctype": "DocField", 
   "fieldname": "conversion_rate", 
diff --git a/utilities/transaction_base.py b/utilities/transaction_base.py
index 36231bf..0f4d6bc 100644
--- a/utilities/transaction_base.py
+++ b/utilities/transaction_base.py
@@ -144,7 +144,6 @@
 	
 	def get_customer_address(self, args):
 		args = load_json(args)
-		webnotes.errprint(args)
 		ret = {
 			'customer_address' : args["address"],
 			'address_display' : get_address_display(args["address"]),
@@ -432,14 +431,7 @@
 	
 	company_currency = webnotes.conn.get_value("Company", company, "default_currency")
 	
-	# parenthesis for 'OR' are necessary as we want it to evaluate as 
-	# mandatory valid condition and (1st optional valid condition 
-	# 	or 2nd optional valid condition)
-	valid_conversion_rate = (conversion_rate and 
-		((currency == company_currency and conversion_rate == 1.00)
-			or (currency != company_currency and conversion_rate != 1.00)))
-
-	if not valid_conversion_rate:
+	if not conversion_rate:
 		msgprint(_('Please enter valid ') + conversion_rate_label + (': ') 
 			+ ("1 %s = [?] %s" % (currency, company_currency)),
 			raise_exception=True)
