diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index fda6548..76092ed 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -73,8 +73,9 @@
 						return item.delivery_note ? true : false;
 					});
 
-				if(!from_delivery_note)
+				if(!from_delivery_note) {
 					cur_frm.appframe.add_primary_action(__('Make Delivery'), cur_frm.cscript['Make Delivery Note'], "icon-truck")
+				}
 			}
 
 			if(doc.outstanding_amount!=0) {
diff --git a/erpnext/public/js/transaction.js b/erpnext/public/js/transaction.js
index 44835ce..915bbd9 100644
--- a/erpnext/public/js/transaction.js
+++ b/erpnext/public/js/transaction.js
@@ -57,27 +57,32 @@
 		this.set_dynamic_labels();
 
 		// Show POS button only if it is enabled from features setup
-		if(cint(sys_defaults.fs_pos_view)===1 && this.frm.doctype!="Material Request" && this.frm.doc.docstatus===0)
+		if(cint(sys_defaults.fs_pos_view)===1 && this.frm.doctype!="Material Request")
 			this.make_pos_btn();
 	},
 
 	make_pos_btn: function() {
-		if(!this.pos_active) {
-			var btn_label = __("POS View"),
-				icon = "icon-th";
-		} else {
-			var btn_label = __("Form View"),
-				icon = "icon-file-text";
-		}
 		var me = this;
+		if(this.frm.doc.docstatus===0) {
+			if(!this.pos_active) {
+				var btn_label = __("POS View"),
+					icon = "icon-th";
+			} else {
+				var btn_label = __("Form View"),
+					icon = "icon-file-text";
+			}
 
-		this.$pos_btn = this.frm.appframe.add_primary_action(btn_label, function() {
-			me.toggle_pos();
-		}, icon, "btn-default");
+			if(erpnext.open_as_pos) {
+				me.toggle_pos(true);
+				erpnext.open_as_pos = false;
+			}
 
-		if(erpnext.open_as_pos) {
-			me.toggle_pos(true);
-			erpnext.open_as_pos = false;
+			this.$pos_btn = this.frm.appframe.add_primary_action(btn_label, function() {
+				me.toggle_pos();
+			}, icon, "btn-default");
+		} else {
+			// hack: will avoid calling refresh from refresh
+			setTimeout(function() { me.toggle_pos(false); }, 100);
 		}
 	},
 
@@ -86,26 +91,27 @@
 		var price_list = frappe.meta.has_field(cur_frm.doc.doctype, "selling_price_list") ?
 			this.frm.doc.selling_price_list : this.frm.doc.buying_price_list;
 
-		if (!price_list)
-			msgprint(__("Please select Price List"))
-		else {
-			if((show===true && this.pos_active) || (show===false && !this.pos_active)) return;
+		if((show===true && this.pos_active) || (show===false && !this.pos_active))
+			return;
 
-			// make pos
-			if(!this.frm.pos) {
-				this.frm.layout.add_view("pos");
-				this.frm.pos = new erpnext.POS(this.frm.layout.views.pos, this.frm);
-			}
-
-			// toggle view
-			this.frm.layout.set_view(this.pos_active ? "" : "pos");
-			this.pos_active = !this.pos_active;
-
-			// refresh
-			if(this.pos_active)
-				this.frm.pos.refresh();
-			this.frm.refresh();
+		if(show && !price_list) {
+			frappe.throw(__("Please select Price List"));
 		}
+
+		// make pos
+		if(!this.frm.pos) {
+			this.frm.layout.add_view("pos");
+			this.frm.pos = new erpnext.POS(this.frm.layout.views.pos, this.frm);
+		}
+
+		// toggle view
+		this.frm.layout.set_view(this.pos_active ? "" : "pos");
+		this.pos_active = !this.pos_active;
+
+		// refresh
+		if(this.pos_active)
+			this.frm.pos.refresh();
+		this.frm.refresh();
 	},
 
 
