diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.js b/accounts/doctype/purchase_invoice/purchase_invoice.js
index 9d75264..fc530dd 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -36,7 +36,7 @@
 					"from_date": doc.posting_date,
 					"to_date": doc.posting_date,
 				};
-				wn.set_route("general-ledger");
+				wn.set_route("query-report/General Ledger");
 			}, "icon-table");
 		}
 
diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index 7784005..55f6dde 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -55,7 +55,7 @@
 					"from_date": doc.posting_date,
 					"to_date": doc.posting_date,
 				};
-				wn.set_route("general-ledger");
+				wn.set_route("query-report/General Ledger");
 			}, "icon-table");
 			
 			var percent_paid = cint(flt(doc.grand_total - doc.outstanding_amount) / flt(doc.grand_total) * 100);
diff --git a/accounts/report/general_ledger/general_ledger.py b/accounts/report/general_ledger/general_ledger.py
index fcf8010..bf07e25 100644
--- a/accounts/report/general_ledger/general_ledger.py
+++ b/accounts/report/general_ledger/general_ledger.py
@@ -3,20 +3,24 @@
 
 from __future__ import unicode_literals
 import webnotes
-from webnotes.utils import flt
+from webnotes.utils import flt, add_days
 from webnotes import _
+from accounts.utils import get_balance_on
 
 def execute(filters=None):
 	validate_filters(filters)
 	columns = get_columns()
-	
+	data = []
 	if filters.get("group_by"):
-		data = get_grouped_gle(filters)
+		data += get_grouped_gle(filters)
 	else:
-		data = get_gl_entries(filters)
+		data += get_gl_entries(filters)
 		if data:
 			data.append(get_total_row(data))
 
+	if filters.get("account"):
+		data = [get_opening_balance_row(filters)] + data + [get_closing_balance_row(filters)]
+
 	return columns, data
 	
 def validate_filters(filters):
@@ -27,12 +31,20 @@
 		webnotes.throw(_("Can not filter based on Voucher No, if grouped by Voucher"))
 	
 def get_columns():
-	return ["Posting Date:Date:100", "Account:Link/Account:200", "Debit:Currency:100", 
-		"Credit:Currency:100", "Voucher Type::120", "Voucher No::160", 
+	return ["Posting Date:Date:100", "Account:Link/Account:200", "Debit:Float:100", 
+		"Credit:Float:100", "Voucher Type::120", "Voucher No::160", "Link::20", 
 		"Cost Center:Link/Cost Center:100", "Remarks::200"]
 		
+def get_opening_balance_row(filters):
+	opening_balance = get_balance_on(filters["account"], add_days(filters["from_date"], -1))
+	return ["", "Opening Balance", opening_balance, 0.0, "", "", ""]
+	
+def get_closing_balance_row(filters):
+	closing_balance = get_balance_on(filters["account"], filters["to_date"])
+	return ["", "Closing Balance", closing_balance, 0.0, "", "", ""]
+		
 def get_gl_entries(filters):
-	return webnotes.conn.sql("""select 
+	gl_entries = webnotes.conn.sql("""select 
 			posting_date, account, debit, credit, voucher_type, voucher_no, cost_center, remarks 
 		from `tabGL Entry`
 		where company=%(company)s 
@@ -40,6 +52,13 @@
 			{conditions}
 		order by posting_date, account"""\
 		.format(conditions=get_conditions(filters)), filters, as_list=1)
+		
+	for d in gl_entries:
+		icon = """<a href="%s"><i class="icon icon-share" style="cursor: pointer;"></i></a>""" \
+			% ("/".join(["#Form", d[4], d[5]]),)
+		d.insert(6, icon)
+		
+	return gl_entries
 			
 def get_conditions(filters):
 	conditions = []
diff --git a/stock/report/stock_ledger/stock_ledger.py b/stock/report/stock_ledger/stock_ledger.py
index ea1a60f..034884b 100644
--- a/stock/report/stock_ledger/stock_ledger.py
+++ b/stock/report/stock_ledger/stock_ledger.py
@@ -13,10 +13,14 @@
 	data = []
 	for sle in sl_entries:
 		item_detail = item_details[sle.item_code]
+		voucher_link_icon = """<a href="%s"><i class="icon icon-share" 
+			style="cursor: pointer;"></i></a>""" \
+			% ("/".join(["#Form", sle.voucher_type, sle.voucher_no]),)
+			
 		data.append([sle.date, sle.item_code, item_detail.item_name, item_detail.item_group, 
 			item_detail.brand, item_detail.description, sle.warehouse, item_detail.stock_uom, 
 			sle.actual_qty, sle.qty_after_transaction, sle.stock_value, sle.voucher_type, 
-			sle.voucher_no, sle.batch_no, sle.serial_no, sle.company])
+			sle.voucher_no, voucher_link_icon, sle.batch_no, sle.serial_no, sle.company])
 	
 	return columns, data
 	
@@ -25,7 +29,7 @@
 		"Item Group:Link/Item Group:100", "Brand:Link/Brand:100",
 		"Description::200", "Warehouse:Link/Warehouse:100",
 		"Stock UOM:Link/UOM:100", "Qty:Float:50", "Balance Qty:Float:80", 
-		"Balance Value:Currency:100", "Voucher Type::100", "Voucher #::100",
+		"Balance Value:Currency:100", "Voucher Type::100", "Voucher #::100", "Link::30", 
 		"Batch:Link/Batch:100", "Serial #:Link/Serial No:100", "Company:Link/Company:100"]
 	
 def get_stock_ledger_entries(filters):
diff --git a/stock/report/stock_projected_qty/stock_projected_qty.py b/stock/report/stock_projected_qty/stock_projected_qty.py
index d116d03..0572f79 100644
--- a/stock/report/stock_projected_qty/stock_projected_qty.py
+++ b/stock/report/stock_projected_qty/stock_projected_qty.py
@@ -20,7 +20,7 @@
 		where item_code = item.name and warehouse = wh.name
 		order by item.name, wh.name"""\
 		.format(item_conditions=get_item_conditions(filters),
-			warehouse_conditions=get_warehouse_conditions(filters)), filters, debug=1)
+			warehouse_conditions=get_warehouse_conditions(filters)), filters)
 	
 	return columns, data
 	
