diff --git a/accounts/report/purchase_register/purchase_register.py b/accounts/report/purchase_register/purchase_register.py
index d6233a4..6bc3521 100644
--- a/accounts/report/purchase_register/purchase_register.py
+++ b/accounts/report/purchase_register/purchase_register.py
@@ -40,9 +40,10 @@
 		# invoice details
 		purchase_order = list(set(invoice_po_pr_map.get(inv.name, {}).get("purchase_order", [])))
 		purchase_receipt = list(set(invoice_po_pr_map.get(inv.name, {}).get("purchase_receipt", [])))
+		project_name = list(set(invoice_po_pr_map.get(inv.name, {}).get("project_name", [])))
 
 		row = [inv.name, inv.posting_date, inv.supplier, inv.credit_to, 
-			account_map.get(inv.credit_to), inv.project_name, inv.bill_no, inv.bill_date, 
+			account_map.get(inv.credit_to), ", ".join(project_name), inv.bill_no, inv.bill_date, 
 			inv.remarks, ", ".join(purchase_order), ", ".join(purchase_receipt)]
 		
 		# map expense values
@@ -105,11 +106,10 @@
 	
 def get_invoices(filters):
 	conditions = get_conditions(filters)
-	return webnotes.conn.sql("""select pi.name, pi.posting_date, pi.credit_to, 
-		pii.project_name, pi.supplier, pi.bill_no, pi.bill_date, pi.remarks, pi.net_total, 
-		pi.total_tax, pi.grand_total, pi.outstanding_amount 
-		from `tabPurchase Invoice` pi, `tabPurchase Invoice Item` pii 
-		where pii.parent = pi.name and pi.docstatus = 1 %s 
+	return webnotes.conn.sql("""select name, posting_date, credit_to, 
+		supplier, bill_no, bill_date, remarks, net_total, 
+		total_tax, grand_total, outstanding_amount 
+		from `tabPurchase Invoice` where docstatus = 1 %s 
 		order by posting_date desc, name desc""" % conditions, filters, as_dict=1)
 	
 	
@@ -138,8 +138,8 @@
 	return invoice_tax_map
 	
 def get_invoice_po_pr_map(invoice_list):
-	pi_items = webnotes.conn.sql("""select parent, purchase_order, purchase_receipt
-		from `tabPurchase Invoice Item` where parent in (%s) 
+	pi_items = webnotes.conn.sql("""select parent, purchase_order, purchase_receipt, 
+		project_name from `tabPurchase Invoice Item` where parent in (%s) 
 		and (ifnull(purchase_order, '') != '' or ifnull(purchase_receipt, '') != '')""" % 
 		', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]), as_dict=1)
 	
@@ -151,6 +151,11 @@
 		if d.purchase_receipt:
 			invoice_po_pr_map.setdefault(d.parent, webnotes._dict()).setdefault(
 				"purchase_receipt", []).append(d.purchase_receipt)
+		if d.project_name:
+			invoice_po_pr_map.setdefault(d.parent, webnotes._dict()).setdefault(
+				"project_name", []).append(d.project_name)
+
+	webnotes.errprint(invoice_po_pr_map)
 				
 	return invoice_po_pr_map
 	
