diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index 85f7748..7a83c7b 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -26,10 +26,9 @@
 		this._super();
 
 		hide_fields(this.frm.doc);
-		this.frm.page.add_document_flow(cur_frm)
 		// Show / Hide button
 		this.show_general_ledger();
-		
+
 		if(doc.update_stock==1 && doc.docstatus==1) {
 			this.show_stock_ledger();
 		}
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index cdb2652..be8a846 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -24,7 +24,6 @@
 
 	refresh: function(doc, dt, dn) {
 		this._super();
-		this.frm.page.add_document_flow(this.frm)
 		if(cur_frm.msgbox && cur_frm.msgbox.$wrapper.is(":visible")) {
 			// hide new msgbox
 			cur_frm.msgbox.hide();
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js
index c1fe693..d90c0da 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.js
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.js
@@ -20,7 +20,6 @@
 		// this.frm.dashboard.reset();
 		var allow_receipt = false;
 		var is_drop_ship = false;
-		this.frm.page.add_document_flow(this.frm)
 		for (var i in cur_frm.doc.items) {
 			var item = cur_frm.doc.items[i];
 			if(item.delivered_by_supplier !== 1) {
diff --git a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
index 2550448..b3030f7 100644
--- a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
+++ b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
@@ -7,7 +7,6 @@
 erpnext.buying.SupplierQuotationController = erpnext.buying.BuyingController.extend({
 	refresh: function() {
 		this._super();
-		this.frm.page.add_document_flow(this.frm);
 		if (this.frm.doc.docstatus === 1) {
 			cur_frm.add_custom_button(__("Purchase Order"), this.make_purchase_order,
 				__("Make"));
diff --git a/erpnext/public/build.json b/erpnext/public/build.json
index d912b68..cf412e1 100644
--- a/erpnext/public/build.json
+++ b/erpnext/public/build.json
@@ -27,7 +27,7 @@
 		"public/js/payment/payment_details.html",
 		"public/js/templates/item_selector.html",
 		"public/js/utils/item_selector.js",
-		"public/js/module_flow.js"
+		"public/js/utils/document_flow.js"
 	],
 	"js/item-dashboard.min.js": [
 		"stock/dashboard/item_dashboard.html",
diff --git a/erpnext/public/js/module_flow.js b/erpnext/public/js/utils/document_flow.js
similarity index 92%
rename from erpnext/public/js/module_flow.js
rename to erpnext/public/js/utils/document_flow.js
index 3c07b59..31aec8e 100644
--- a/erpnext/public/js/module_flow.js
+++ b/erpnext/public/js/utils/document_flow.js
@@ -3,8 +3,8 @@
 
 // for module flow
 
-
-frappe.module_flow =  {
+frappe.provide('frappe.document_flow');
+$.extend(frappe.document_flow, {
 	"Selling": {
 		"Sales Order": ["Quotation", "Sales Order", "Delivery Note", "Sales Invoice", "Journal Entry"],
 		"Quotation": ["Quotation", "Sales Order", "Delivery Note", "Sales Invoice", "Journal Entry"]
@@ -25,4 +25,4 @@
 		"Purchase Receipt": ["Supplier Quotation", "Purchase Order", "Purchase Receipt",
 			"Purchase Invoice", "Journal Entry"]
 	}
-}
\ No newline at end of file
+});
diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js
index d1ca691..f61f0e9 100644
--- a/erpnext/selling/doctype/quotation/quotation.js
+++ b/erpnext/selling/doctype/quotation/quotation.js
@@ -16,7 +16,6 @@
 	},
 	refresh: function(doc, dt, dn) {
 		this._super(doc, dt, dn);
-		this.frm.page.add_document_flow(this.frm)
 		if(doc.docstatus == 1 && doc.status!=='Lost') {
 			cur_frm.add_custom_button(__('Make Sales Order'),
 				cur_frm.cscript['Make Sales Order']);
diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js
index 3ffa685..ce9c958 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.js
+++ b/erpnext/selling/doctype/sales_order/sales_order.js
@@ -22,7 +22,6 @@
 		var allow_purchase = false;
 		var allow_delivery = false;
 		
-		this.frm.page.add_document_flow(this.frm)
 		if(doc.docstatus==1) {
 			if(doc.status != 'Closed') {
 
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index 9b51cfd..c5fce7d 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -8,7 +8,6 @@
 erpnext.stock.DeliveryNoteController = erpnext.selling.SellingController.extend({
 	refresh: function(doc, dt, dn) {
 		this._super();
-		this.frm.page.add_document_flow(this.frm)
 		if (!doc.is_return && doc.status!="Closed") {
 			if(flt(doc.per_installed, 2) < 100 && doc.docstatus==1)
 				cur_frm.add_custom_button(__('Installation Note'), this.make_installation_note, __("Make"));
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
index 6fdb847..f622b63 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -29,7 +29,7 @@
 				}
 			})
 		})
-		
+
 		frm.set_query("supplier_warehouse", function() {
 			return {
 				filters: [["Warehouse", "company", "in", ["", cstr(frm.doc.company)]]]
@@ -41,7 +41,6 @@
 erpnext.stock.PurchaseReceiptController = erpnext.buying.BuyingController.extend({
 	refresh: function() {
 		this._super();
-		this.frm.page.add_document_flow(this.frm)
 		if(this.frm.doc.docstatus===1) {
 			this.show_stock_ledger();
 			if (cint(frappe.defaults.get_default("auto_accounting_for_stock"))) {
@@ -71,9 +70,9 @@
 				if (this.frm.has_perm("submit")) {
 					cur_frm.add_custom_button(__("Close"), this.close_purchase_receipt, __("Status"))
 				}
-				
+
 				cur_frm.add_custom_button(__('Return'), this.make_purchase_return, __("Make"));
-				
+
 				if(flt(this.frm.doc.per_billed) < 100) {
 					cur_frm.add_custom_button(__('Invoice'), this.make_purchase_invoice, __("Make"));
 				}
