diff --git a/accounts/page/trial_balance/trial_balance.js b/accounts/page/trial_balance/trial_balance.js
index 3504ae0..3f47758 100644
--- a/accounts/page/trial_balance/trial_balance.js
+++ b/accounts/page/trial_balance/trial_balance.js
@@ -22,5 +22,39 @@
 		title: 'Trial Balance',
 		single_column: true
 	});
-	erpnext.trial_balance = new erpnext.AccountTreeGrid(wrapper, 'Trial Balance');
+	var TrialBalance = erpnext.AccountTreeGrid.extend({
+		export: function() {
+			var msgbox = msgprint('<p>Select To Download:</p>\
+				<p><input type="checkbox" name="with_groups" checked> Account Groups</p>\
+				<p><input type="checkbox" name="with_ledgers" checked> Account Ledgers</p>\
+				<p><button class="btn btn-info btn-small">Download</button>');
+
+			var me = this;
+
+			$(msgbox.body).find("button").click(function() {
+				var with_groups = $(msgbox.body).find("[name='with_groups']").is(":checked");
+				var with_ledgers = $(msgbox.body).find("[name='with_ledgers']").is(":checked");
+
+				var data = wn.slickgrid_tools.get_view_data(me.columns, me.dataView, 
+					function(row, item) {
+						if(with_groups) {
+							// pad row
+							for(var i=0; i<item.indent; i++) row[0] = "   " + row[0];
+						}
+						if(with_groups && item.group_or_ledger == "Group") return true;
+						if(with_ledgers && item.group_or_ledger == "Ledger") return true;
+					
+						return false;
+				});
+				
+				console.log(data);
+				
+				wn.downloadify(data, ["Report Manager", "System Manager"], me);
+				return false;
+			})
+
+			return false;
+		},
+	})
+	erpnext.trial_balance = new TrialBalance(wrapper, 'Trial Balance');
 }
\ No newline at end of file
diff --git a/home/page/latest_updates/__init__.py b/home/page/latest_updates/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/home/page/latest_updates/__init__.py
diff --git a/home/page/latest_updates/latest_updates.js b/home/page/latest_updates/latest_updates.js
new file mode 100644
index 0000000..ac08c5e
--- /dev/null
+++ b/home/page/latest_updates/latest_updates.js
@@ -0,0 +1,38 @@
+erpnext.updates = [
+	["13th November 2012", [
+		"Trial Balance (new): Feature to export Ledgers or Groups selectively. Indent Groups with spaces",
+		"General Ledger (new): Will show entries with 'Is Opening' as Opening.",
+		"General Ledger (new): Show against account entries if filtered by account.",
+	]],
+	["12th November 2012", [
+		"Document Lists: Automatically Refresh lists when opened (again).",	
+		"Messages: Popups will not be shown (annoying).",	
+		"Email Digest: New option to get ten latest Open Support Tickets.",
+		"Journal Voucher: 'Against JV' will now be filtered by the Account selected.",
+		"Query Report: Allow user to rename and save reports.",
+		"Employee Leave Balance Report: Bugfix"
+	]]
+]
+
+
+wn.pages['latest-updates'].onload = function(wrapper) { 
+	wn.ui.make_app_page({
+		parent: wrapper,
+		title: 'Latest Updates',
+		single_column: true
+	});
+		
+	var parent = $(wrapper).find(".layout-main");
+	
+	$("<p class='help'>Report issues by sending a mail to <a href='mailto:support@erpnext.com'>support@erpnext.com</a> or \
+		via <a href='https://github.com/webnotes/erpnext/issues'>GitHub Issues</a></p><hr>").appendTo(parent);
+	
+	
+	$.each(erpnext.updates, function(i, day) {
+		$("<h4>" + day[0] + "</h4>").appendTo(parent);
+		$.each(day[1], function(j, item) {
+			$("<p>").html(item).appendTo(parent);
+		})
+		$("<hr>").appendTo(parent);
+	});
+}
\ No newline at end of file
diff --git a/home/page/latest_updates/latest_updates.txt b/home/page/latest_updates/latest_updates.txt
new file mode 100644
index 0000000..876c086
--- /dev/null
+++ b/home/page/latest_updates/latest_updates.txt
@@ -0,0 +1,43 @@
+# Page, latest-updates
+[
+
+	# These values are common in all dictionaries
+	{
+		u'creation': '2012-11-13 11:55:09',
+		u'docstatus': 0,
+		u'modified': '2012-11-13 12:21:39',
+		u'modified_by': u'Administrator',
+		u'owner': u'Administrator'
+	},
+
+	# These values are common for all Page
+	{
+		u'doctype': u'Page',
+		'module': u'Home',
+		u'name': u'__common__',
+		'page_name': u'latest-updates',
+		'standard': u'Yes',
+		'title': u'Latest Updates'
+	},
+
+	# These values are common for all Page Role
+	{
+		u'doctype': u'Page Role',
+		u'name': u'__common__',
+		'parent': u'latest-updates',
+		'parentfield': u'roles',
+		'parenttype': u'Page',
+		'role': u'All'
+	},
+
+	# Page, latest-updates
+	{
+		u'doctype': u'Page',
+		u'name': u'latest-updates'
+	},
+
+	# Page Role
+	{
+		u'doctype': u'Page Role'
+	}
+]
\ No newline at end of file
diff --git a/public/js/startup.js b/public/js/startup.js
index 4efc2a3..1757dc5 100644
--- a/public/js/startup.js
+++ b/public/js/startup.js
@@ -53,7 +53,8 @@
 		// border to the body
 		// ------------------
 		$('footer').html('<div class="web-footer erpnext-footer">\
-			<a href="#!attributions">ERPNext | Attributions and License</a></div>');
+			<a href="#attributions">Attributions and License</a> | \
+			<a href="#latest-updates"><b>Latest Updates</b></a></div>');
 
 		// complete registration
 		if(in_list(user_roles,'System Manager') && (wn.boot.setup_complete=='No')) { 
diff --git a/startup/report_data_map.py b/startup/report_data_map.py
index 08670f9..1ea9d13 100644
--- a/startup/report_data_map.py
+++ b/startup/report_data_map.py
@@ -33,9 +33,13 @@
 	# Accounts
 	"Account": {
 		"columns": ["name", "parent_account", "lft", "rgt", "debit_or_credit", 
-			"is_pl_account", "company"],
+			"is_pl_account", "company", "group_or_ledger"],
 		"conditions": ["docstatus < 2"],
-		"order_by": "lft"
+		"order_by": "lft",
+		"links": {
+			"company": ["Company", "name"],
+		}
+		
 	},
 	"Cost Center": {
 		"columns": ["name", "lft", "rgt"],
