diff --git a/accounts/page/general_ledger/README.md b/accounts/page/general_ledger/README.md
deleted file mode 100644
index 8c51e91..0000000
--- a/accounts/page/general_ledger/README.md
+++ /dev/null
@@ -1 +0,0 @@
-General Ledger report (for all transactions and accounts).
\ No newline at end of file
diff --git a/accounts/page/general_ledger/__init__.py b/accounts/page/general_ledger/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/accounts/page/general_ledger/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/accounts/page/general_ledger/general_ledger.css b/accounts/page/general_ledger/general_ledger.css
deleted file mode 100644
index e69de29..0000000
--- a/accounts/page/general_ledger/general_ledger.css
+++ /dev/null
diff --git a/accounts/page/general_ledger/general_ledger.html b/accounts/page/general_ledger/general_ledger.html
deleted file mode 100644
index e69de29..0000000
--- a/accounts/page/general_ledger/general_ledger.html
+++ /dev/null
diff --git a/accounts/page/general_ledger/general_ledger.js b/accounts/page/general_ledger/general_ledger.js
deleted file mode 100644
index 7eeab58..0000000
--- a/accounts/page/general_ledger/general_ledger.js
+++ /dev/null
@@ -1,396 +0,0 @@
-// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-// License: GNU General Public License v3. See license.txt
-
-wn.pages['general-ledger'].onload = function(wrapper) { 
-	wn.ui.make_app_page({
-		parent: wrapper,
-		title: wn._('General Ledger'),
-		single_column: true
-	});
-	
-	erpnext.general_ledger = new erpnext.GeneralLedger(wrapper);
-	wrapper.appframe.add_module_icon("Accounts")
-
-}
-
-erpnext.GeneralLedger = wn.views.GridReport.extend({
-	init: function(wrapper) {
-		this._super({
-			title: wn._("General Ledger"),
-			page: wrapper,
-			parent: $(wrapper).find('.layout-main'),
-			appframe: wrapper.appframe,
-			doctypes: ["Company", "Account", "GL Entry", "Cost Center"],
-		});
-	},
-	setup_columns: function() {
-		this.columns = [
-			{id: "posting_date", name: wn._("Posting Date"), field: "posting_date", width: 100,
-				formatter: this.date_formatter},
-			{id: "account", name: wn._("Account"), field: "account", width: 240, 	
-				link_formatter: {
-					filter_input: "account",
-					open_btn: true,
-					doctype: "'Account'"
-				}},
-			{id: "against_account", name: wn._("Against Account"), field: "against_account", 
-				width: 240, hidden: !this.account},
-
-			{id: "debit", name: wn._("Debit"), field: "debit", width: 100,
-				formatter: this.currency_formatter},
-			{id: "credit", name: wn._("Credit"), field: "credit", width: 100,
-				formatter: this.currency_formatter},
-			{id: "voucher_type", name: wn._("Voucher Type"), field: "voucher_type", width: 120},
-			{id: "voucher_no", name: wn._("Voucher No"), field: "voucher_no", width: 160,
-				link_formatter: {
-					filter_input: "voucher_no",
-					open_btn: true,
-					doctype: "dataContext.voucher_type"
-				}},
-			{id: "remarks", name: wn._("Remarks"), field: "remarks", width: 200,
-				formatter: this.text_formatter},
-				
-		];
-	},
-	
-	filters: [
-		{fieldtype:"Select", label: wn._("Company"), link:"Company", default_value: wn._("Select Company..."),
-			filter: function(val, item, opts) {
-				return item.company == val || val == opts.default_value;
-			}},
-		{fieldtype:"Link", label: wn._("Account"), link:"Account",
-			filter: function(val, item, opts, me) {
-				if(!val) {
-					return true;
-				} else {
-					// true if GL Entry belongs to selected
-					// account ledger or group
-					return me.is_child_account(val, item.account);
-				}
-			}},
-		{fieldtype:"Data", label: wn._("Voucher No"),
-			filter: function(val, item, opts) {
-				if(!val) return true;
-				return (item.voucher_no && item.voucher_no.indexOf(val)!=-1);
-			}},
-		{fieldtype:"Date", label: wn._("From Date"), filter: function(val, item) {
-			return dateutil.str_to_obj(val) <= dateutil.str_to_obj(item.posting_date);
-		}},
-		{fieldtype:"Label", label: wn._("To")},
-		{fieldtype:"Date", label: wn._("To Date"), filter: function(val, item) {
-			return dateutil.str_to_obj(val) >= dateutil.str_to_obj(item.posting_date);
-		}},
-		{fieldtype: "Check", label: wn._("Group by Ledger")},
-		{fieldtype: "Check", label: wn._("Group by Voucher")},
-		{fieldtype:"Button", label: wn._("Refresh"), icon:"icon-refresh icon-white"},
-		{fieldtype:"Button", label: wn._("Reset Filters")}
-	],
-	setup_filters: function() {
-		this._super();
-		var me = this;
-		
-		this.accounts_by_company = this.make_accounts_by_company();
-		
-		// filter accounts options by company
-		this.filter_inputs.company.on("change", function() {
-			me.setup_account_filter(this);
-			me.refresh();
-		});
-		
-		this.trigger_refresh_on_change(["group_by_ledger", "group_by_voucher"]);
-	},
-	setup_account_filter: function(company_filter) {
-		var me = this;
-		
-		var $account = me.filter_inputs.account;
-		var company = $(company_filter).val();
-		var default_company = this.filter_inputs.company.get(0).opts.default_value;
-		var opts = $account.get(0).opts;
-		opts.list = $.map(wn.report_dump.data["Account"], function(ac) {
-				return (company===default_company || 
-					me.accounts_by_company[company].indexOf(ac.name)!=-1) ? 
-					ac.name : null;
-			});
-		
-		this.set_autocomplete($account, opts.list);
-		
-	},
-	init_filter_values: function() {
-		this._super();
-		this.toggle_group_by_checks();
-		this.filter_inputs.company.trigger("change");
-	},
-	apply_filters_from_route: function() {
-		this._super();
-		this.toggle_group_by_checks();
-	},
-	make_accounts_by_company: function() {
-		var accounts_by_company = {};
-		var me = this;
-		$.each(wn.report_dump.data["Account"], function(i, ac) {
-			if(!accounts_by_company[ac.company]) accounts_by_company[ac.company] = [];
-			accounts_by_company[ac.company].push(ac.name);
-		});
-		return accounts_by_company;
-	},
-	is_child_account: function(account, item_account) {
-		account = this.account_by_name[account];
-		item_account = this.account_by_name[item_account];
-		return ((item_account.lft >= account.lft) && (item_account.rgt <= account.rgt));
-	},
-	toggle_group_by_checks: function() {
-		this.make_account_by_name();
-		
-		// this.filter_inputs.group_by_ledger
-		// 	.parent().toggle(!!(this.account_by_name[this.account] 
-		// 		&& this.account_by_name[this.account].group_or_ledger==="Group"));
-		// 		
-		// this.filter_inputs.group_by_voucher
-		// 	.parent().toggle(!!(this.account_by_name[this.account] 
-		// 		&& this.account_by_name[this.account].group_or_ledger==="Ledger"));
-	},
-	prepare_data: function() {
-		var me = this;
-		var data = wn.report_dump.data["GL Entry"];
-		var out = [];
-		
-		this.toggle_group_by_checks();
-		
-		var from_date = dateutil.str_to_obj(this.from_date);
-		var to_date = dateutil.str_to_obj(this.to_date);
-		
-		if(to_date < from_date) {
-			msgprint(wn._("From Date must be before To Date"));
-			return;
-		}
-		
-		// add Opening, Closing, Totals rows
-		// if filtered by account and / or voucher
-		var opening = this.make_summary_row("Opening", this.account);
-		var totals = this.make_summary_row("Totals", this.account);
-
-		var grouped_ledgers = {};
-		$.each(data, function(i, item) {
-			if(me.apply_filter(item, "company") &&
-				(me.account ? me.is_child_account(me.account, item.account) 
-				: true) && (me.voucher_no ? item.voucher_no==me.voucher_no : true)) {
-				var date = dateutil.str_to_obj(item.posting_date);
-
-				// create grouping by ledger
-				if(!grouped_ledgers[item.account]) {
-					grouped_ledgers[item.account] = {
-						entries: [],
-						entries_group_by_voucher: {},
-						opening: me.make_summary_row("Opening", item.account),
-						totals: me.make_summary_row("Totals", item.account),
-						closing: me.make_summary_row("Closing (Opening + Totals)",
-							item.account)
-					};
-				}
-				
-				if(!grouped_ledgers[item.account].entries_group_by_voucher[item.voucher_no]) {
-					grouped_ledgers[item.account].entries_group_by_voucher[item.voucher_no] = {
-						row: {},
-						totals: {"debit": 0, "credit": 0}
-					}
-				}
-				
-				if(!me.voucher_no && (date < from_date || item.is_opening=="Yes")) {
-					opening.debit += item.debit;
-					opening.credit += item.credit;
-
-					grouped_ledgers[item.account].opening.debit += item.debit;
-					grouped_ledgers[item.account].opening.credit += item.credit;
-
-				} else if(date <= to_date) {
-
-					totals.debit += item.debit;
-					totals.credit += item.credit;
-
-					grouped_ledgers[item.account].totals.debit += item.debit;
-					grouped_ledgers[item.account].totals.credit += item.credit;
-					grouped_ledgers[item.account].entries_group_by_voucher[item.voucher_no]
-						.totals.debit += item.debit;
-					grouped_ledgers[item.account].entries_group_by_voucher[item.voucher_no]
-						.totals.credit += item.credit;
-				}
-				if(item.account) {
-					item.against_account = me.voucher_accounts[item.voucher_type + ":"
-						+ item.voucher_no][(item.debit > 0 ? "credits" : "debits")].join(", ");
-				}
-
-				if(me.apply_filters(item) && (me.voucher_no || item.is_opening=="No")) {
-					out.push(item);
-					grouped_ledgers[item.account].entries.push(item);
-					
-					if(grouped_ledgers[item.account].entries_group_by_voucher[item.voucher_no].row){
-						grouped_ledgers[item.account].entries_group_by_voucher[item.voucher_no]
-							.row = $.extend({}, item);
-					}
-				}
-			}
-		});
-
-		var closing = this.make_summary_row("Closing (Opening + Totals)", this.account);
-		closing.debit = opening.debit + totals.debit;
-		closing.credit = opening.credit + totals.credit;
-
-		if(me.account) {
-			me.appframe.set_title(wn._("General Ledger: ") + me.account);
-
-			// group by ledgers
-			if(this.account_by_name[this.account].group_or_ledger==="Group"
-				&& this.group_by_ledger) {
-					out = this.group_data_by_ledger(grouped_ledgers);
-			}
-			
-			if(this.account_by_name[this.account].group_or_ledger==="Ledger"
-				&& this.group_by_voucher) {
-					out = this.group_data_by_voucher(grouped_ledgers);
-			}
-			
-			opening = me.get_balance(me.account_by_name[me.account].debit_or_credit, opening)
-			closing = me.get_balance(me.account_by_name[me.account].debit_or_credit, closing)
-			
-			out = [opening].concat(out).concat([totals, closing]);
-		} else {
-			me.appframe.set_title(wn._("General Ledger"));
-			out = out.concat([totals]);
-		}
-
-		this.data = out;
-	},
-
-	group_data_by_ledger: function(grouped_ledgers) {
-		var me = this;
-		var out = []
-		$.each(Object.keys(grouped_ledgers).sort(), function(i, account) {
-			if(grouped_ledgers[account].entries.length) {
-				grouped_ledgers[account].closing.debit = 
-					grouped_ledgers[account].opening.debit
-					+ grouped_ledgers[account].totals.debit;
-
-				grouped_ledgers[account].closing.credit = 
-					grouped_ledgers[account].opening.credit
-					+ grouped_ledgers[account].totals.credit;
-			
-				grouped_ledgers[account].opening = 
-					me.get_balance(me.account_by_name[me.account].debit_or_credit,
-					grouped_ledgers[account].opening)
-				grouped_ledgers[account].closing = 
-					me.get_balance(me.account_by_name[me.account].debit_or_credit, 
-					grouped_ledgers[account].closing)
-				
-				out = out.concat([grouped_ledgers[account].opening])
-					.concat(grouped_ledgers[account].entries)
-					.concat([grouped_ledgers[account].totals, 
-						grouped_ledgers[account].closing,
-						{id: "_blank" + i, debit: "", credit: ""}]);
-			}
-		});
-		return [{id: "_blank_first", debit: "", credit: ""}].concat(out);
-	},
-	
-	group_data_by_voucher: function(grouped_ledgers) {
-		var me = this;
-		var out = []
-		$.each(Object.keys(grouped_ledgers).sort(), function(i, account) {
-			if(grouped_ledgers[account].entries.length) {
-				$.each(Object.keys(grouped_ledgers[account].entries_group_by_voucher),
-				 	function(j, voucher) {						
-						voucher_dict = grouped_ledgers[account].entries_group_by_voucher[voucher];
-						if(voucher_dict && 
-								(voucher_dict.totals.debit || voucher_dict.totals.credit)) {
-							voucher_dict.row.debit = voucher_dict.totals.debit;
-							voucher_dict.row.credit = voucher_dict.totals.credit;
-							voucher_dict.row.id = "entry_grouped_by_" + voucher
-							out = out.concat(voucher_dict.row);
-						}
-				});
-			}
-		});
-		return out;
-	},
-	
-	get_balance: function(debit_or_credit, balance) {
-		if(debit_or_credit == "Debit") {
-			balance.debit -= balance.credit; balance.credit = 0;
-		} else {
-			balance.credit -= balance.debit; balance.debit = 0;
-		}
-		return balance
-	},
-
-	make_summary_row: function(label, item_account) {
-		return {
-			account: label,
-			debit: 0.0,
-			credit: 0.0,
-			id: ["", label, item_account].join("_").replace(" ", "_").toLowerCase(),
-			_show: true,
-			_style: "font-weight: bold"
-		}
-	},
-
-	make_account_by_name: function() {
-		this.account_by_name = this.make_name_map(wn.report_dump.data["Account"]);
-		this.make_voucher_accounts_map();
-	},
-	
-	make_voucher_accounts_map: function() {
-		this.voucher_accounts = {};
-		var data = wn.report_dump.data["GL Entry"];
-		for(var i=0, j=data.length; i<j; i++) {
-			var gl = data[i];
-			
-			if(!this.voucher_accounts[gl.voucher_type + ":" + gl.voucher_no])
-				this.voucher_accounts[gl.voucher_type + ":" + gl.voucher_no] = {
-					debits: [],
-					credits: []
-				}
-				
-			var va = this.voucher_accounts[gl.voucher_type + ":" + gl.voucher_no];
-			if(gl.debit > 0) {
-				va.debits.push(gl.account);
-			} else {
-				va.credits.push(gl.account);
-			}
-		}
-	},
-	
-	get_plot_data: function() {
-		var data = [];
-		var me = this;
-		if(!me.account || me.voucher_no) return false;
-		var debit_or_credit = me.account_by_name[me.account].debit_or_credit;
-		var balance = debit_or_credit=="Debit" ? me.data[0].debit : me.data[0].credit;
-		data.push({
-			label: me.account,
-			data: [[dateutil.str_to_obj(me.from_date).getTime(), balance]]
-				.concat($.map(me.data, function(col, idx) {
-					if (col.posting_date) {
-						var diff = (debit_or_credit == "Debit" ? 1 : -1) * (flt(col.debit) - flt(col.credit));
-						balance += diff;
-						return [[dateutil.str_to_obj(col.posting_date).getTime(), balance - diff],
-								[dateutil.str_to_obj(col.posting_date).getTime(), balance]]
-					}
-					return null;
-				})).concat([
-					// closing
-					[dateutil.str_to_obj(me.to_date).getTime(), balance]
-				]),
-			points: {show: true},
-			lines: {show: true, fill: true},
-		});
-		return data;
-	},
-	get_plot_options: function() {
-		return {
-			grid: { hoverable: true, clickable: true },
-			xaxis: { mode: "time", 
-				min: dateutil.str_to_obj(this.from_date).getTime(),
-				max: dateutil.str_to_obj(this.to_date).getTime() },
-			series: { downsample: { threshold: 1000 } }
-		}
-	},
-});
\ No newline at end of file
diff --git a/accounts/page/general_ledger/general_ledger.txt b/accounts/page/general_ledger/general_ledger.txt
deleted file mode 100644
index 2cc8a60..0000000
--- a/accounts/page/general_ledger/general_ledger.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-[
- {
-  "creation": "2012-09-14 11:25:48", 
-  "docstatus": 0, 
-  "modified": "2013-07-11 14:42:21", 
-  "modified_by": "Administrator", 
-  "owner": "Administrator"
- }, 
- {
-  "doctype": "Page", 
-  "icon": "icon-table", 
-  "module": "Accounts", 
-  "name": "__common__", 
-  "page_name": "general-ledger", 
-  "standard": "Yes", 
-  "title": "General Ledger"
- }, 
- {
-  "doctype": "Page Role", 
-  "name": "__common__", 
-  "parent": "general-ledger", 
-  "parentfield": "roles", 
-  "parenttype": "Page"
- }, 
- {
-  "doctype": "Page", 
-  "name": "general-ledger"
- }, 
- {
-  "doctype": "Page Role", 
-  "role": "Analytics"
- }, 
- {
-  "doctype": "Page Role", 
-  "role": "Accounts Manager"
- }, 
- {
-  "doctype": "Page Role", 
-  "role": "Accounts User"
- }
-]
\ No newline at end of file
diff --git a/patches/1312/p01_delete_old_stock_reports.py b/patches/1312/p01_delete_old_stock_reports.py
index 17c8947..eac9b7b 100644
--- a/patches/1312/p01_delete_old_stock_reports.py
+++ b/patches/1312/p01_delete_old_stock_reports.py
@@ -7,7 +7,9 @@
 	webnotes.delete_doc('Page', 'stock-ledger')
 	webnotes.delete_doc('Page', 'stock-ageing')
 	webnotes.delete_doc('Page', 'stock-level')
+	webnotes.delete_doc('Page', 'general-ledger')
 	
 	os.system("rm -rf app/stock/page/stock_ledger")
 	os.system("rm -rf app/stock/page/stock_ageing")
-	os.system("rm -rf app/stock/page/stock_level")
\ No newline at end of file
+	os.system("rm -rf app/stock/page/stock_level")
+	os.system("rm -rf app/accounts/page/general_ledger")
\ No newline at end of file
