diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
index 6847a98..2822733 100644
--- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
+++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
@@ -134,6 +134,46 @@
 						}
 					})
 				}, __("Get items from"));
+			cur_frm.add_custom_button(__('Possible Supplier'),
+				function() {
+					
+
+					
+					//Create a dialog window for the user to pick their supplier
+					var d = new frappe.ui.Dialog({
+						title: __('Select Possible Supplier'),
+						fields: [
+						{fieldname: 'supplier', fieldtype:'Link', options:'Supplier', label:'Supplier', reqd:1},
+						{fieldname: 'ok_button', fieldtype:'Button', label:'Get Material Requests'},
+						]
+					});
+					
+					//On the user clicking the ok button
+					d.fields_dict.ok_button.input.onclick = function() {
+						var btn = d.fields_dict.ok_button.input;
+						var v = d.get_values();
+						if(v) {
+							$(btn).set_working();
+							
+							erpnext.utils.map_current_doc({
+								method: "erpnext.buying.doctype.request_for_quotation.request_for_quotation.get_matreq_from_possible_supplier",
+								source_name: v.supplier,
+								get_query_filters: {
+									material_request_type: "Purchase",
+									docstatus: 1,
+									status: ["!=", "Stopped"],
+									per_ordered: ["<", 99.99],
+									company: cur_frm.doc.company
+								}
+							});
+							$(btn).done_working();
+							//msgprint("Loaded Material Requests");
+							d.hide();
+						}
+					
+					}	
+					d.show();
+				}, __("Get items from"));
 		}
 	},
 
diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
index 3ff45f5..9592534 100644
--- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
+++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
@@ -12,7 +12,7 @@
 from frappe.desk.form.load import get_attachments
 from frappe.core.doctype.communication.email import make
 from erpnext.accounts.party import get_party_account_currency, get_party_details
-from erpnext.stock.doctype.material_request.material_request import set_missing_values
+from erpnext.stock.doctype.material_request.material_request import set_missing_values, make_request_for_quotation
 from erpnext.controllers.buying_controller import BuyingController
 
 STANDARD_USERS = ("Guest", "Administrator")
@@ -244,3 +244,44 @@
 		args = doc.get('suppliers')[cint(supplier_idx) - 1]
 		doc.update_supplier_part_no(args)
 		return doc
+		
+@frappe.whitelist()
+def get_matreq_from_possible_supplier(source_name, target_doc = None):
+
+	item_list = frappe.db.sql("""SELECT matreq.name, matreqi.item_code
+		FROM `tabItem` as item, 
+			`tabItem Supplier` as itemsup, 
+			`tabMaterial Request Item` as matreqi, 
+			`tabMaterial Request`  as matreq 
+		WHERE itemsup.supplier = %(supplier)s 
+			AND item.name = itemsup.parent 
+			AND matreqi.parent = matreq.name 
+			AND matreqi.item_code = item.name 
+			AND matreq.status != "Stopped" 
+			AND matreq.material_request_type = "Purchase" 
+			AND matreq.docstatus = 1 
+			AND matreq.per_ordered < 99.99""", \
+		{"supplier": source_name},as_dict=1)
+	for d in item_list:
+		frappe.msgprint(d.name + " - " + d.item_code)
+		target_doc = get_mapped_doc("Material Request", d.name, 	{
+		"Material Request": {
+			"doctype": "Request for Quotation",
+			"validation": {
+				"docstatus": ["=", 1],
+				"material_request_type": ["=", "Purchase"],
+				
+			}
+		},
+		"Material Request Item": {
+			"doctype": "Request for Quotation Item",
+			"condition": lambda doc: doc.item_code == d.item_code,
+			"field_map": [
+				["name", "material_request_item"],
+				["parent", "material_request"],
+				["uom", "uom"]
+			]
+		}
+	}, target_doc)
+	return target_doc
+		
\ No newline at end of file
