diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py
index ec0e50c..c6191da 100644
--- a/erpnext/accounts/doctype/sales_invoice/pos.py
+++ b/erpnext/accounts/doctype/sales_invoice/pos.py
@@ -30,6 +30,7 @@
 
 	return {
 		'doc': doc,
+		'default_customer': pos_profile.get('customer'),
 		'items': get_items(doc, pos_profile),
 		'customers': get_customers(pos_profile, doc),
 		'pricing_rules': get_pricing_rules(doc),
@@ -122,9 +123,6 @@
 def get_customers(pos_profile, doc):
 	filters = {'disabled': 0}
 	customer_list = []
-	if pos_profile.get('customer'):
-		filters.update({'name': pos_profile.customer})
-
 	customers = frappe.get_all("Customer", fields=["*"], filters = filters)
 
 	for customer in customers:
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index 4bc634a..f39c983 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -239,6 +239,32 @@
 				}
 			})
 		}
+	},
+
+	is_pos: function(frm){
+		if(this.frm.doc.is_pos) {
+			if(!this.frm.doc.company) {
+				this.frm.set_value("is_pos", 0);
+				msgprint(__("Please specify Company to proceed"));
+			} else {
+				var me = this;
+				return this.frm.call({
+					doc: me.frm.doc,
+					method: "set_missing_values",
+					callback: function(r) {
+						if(!r.exc) {
+							if(r.message && r.message.print_format) {
+								frm.pos_print_format = r.message.print_format;
+							}
+							me.frm.script_manager.trigger("update_stock");
+							frappe.model.set_default_values(me.frm.doc);
+							me.set_dynamic_labels();
+							me.calculate_taxes_and_totals();
+						}
+					}
+				});
+			}
+		}
 	}
 });
 
@@ -430,7 +456,14 @@
 				]
 			}
 		}
-	}
+
+		if(frm.doc.is_pos){
+			frm.get_field('payments').grid.editable_fields = [
+				{fieldname: 'mode_of_payment', columns: 2},
+				{fieldname: 'amount', columns: 2}
+			];
+		}
+	},
 })
 
 frappe.ui.form.on('Sales Invoice Timesheet', {
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
index 746209f..af5790f 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
@@ -2071,7 +2071,7 @@
   {
    "allow_on_submit": 0, 
    "bold": 0, 
-   "collapsible": 1, 
+   "collapsible": 0, 
    "collapsible_depends_on": "", 
    "depends_on": "eval:doc.is_pos===1||(doc.advances && doc.advances.length>0)", 
    "fieldname": "payments_section", 
@@ -3676,7 +3676,7 @@
  "istable": 0, 
  "max_attachments": 0, 
  "menu_index": 0, 
- "modified": "2016-07-02 20:10:14.146963", 
+ "modified": "2016-07-07 13:40:27.977803", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Sales Invoice", 
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index bacee7f..1b68a83 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -9,6 +9,7 @@
 from erpnext.accounts.party import get_party_account, get_due_date
 from erpnext.controllers.stock_controller import update_gl_entries_after
 from frappe.model.mapper import get_mapped_doc
+from erpnext.accounts.doctype.sales_invoice.pos import update_multi_mode_option
 
 from erpnext.controllers.selling_controller import SellingController
 from erpnext.accounts.utils import get_account_currency
@@ -291,6 +292,10 @@
 			if self.taxes_and_charges and not len(self.get("taxes")):
 				self.set_taxes()
 
+			if not self.get('payments'):
+				pos_profile = frappe.get_doc('POS Profile', pos.name)
+				update_multi_mode_option(self, pos_profile)
+
 		return pos
 
 	def get_company_abbr(self):
diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js
index a1a502a..fcccfb4 100644
--- a/erpnext/accounts/page/pos/pos.js
+++ b/erpnext/accounts/page/pos/pos.js
@@ -202,6 +202,7 @@
 				window.pricing_rules = r.message.pricing_rules;
 				window.meta = r.message.meta;
 				window.print_template = r.message.print_template;
+				me.default_customer = r.message.default_customer || null;
 				me.write_off_account = r.message.write_off_account;
 				localStorage.setItem('doc', JSON.stringify(r.message.doc));
 				if(callback){
@@ -301,9 +302,9 @@
 	make_customer: function() {
 		var me = this;
 
-		if(this.customers.length == 1){
-			this.party_field.$input.val(this.customers[0].name);
-			this.frm.doc.customer = this.customers[0].name;
+		if(this.default_customer){
+			this.party_field.$input.val(this.default_customer);
+			this.frm.doc.customer = this.default_customer;
 		}
 
 		this.party_field.$input.autocomplete({
