diff --git a/erpnext/accounts/doctype/account/account.js b/erpnext/accounts/doctype/account/account.js
index f085c8b..471fe7e 100644
--- a/erpnext/accounts/doctype/account/account.js
+++ b/erpnext/accounts/doctype/account/account.js
@@ -49,6 +49,7 @@
 }
 
 cur_frm.add_fetch('parent_account', 'report_type', 'report_type');
+cur_frm.add_fetch('parent_account', 'root_type', 'root_type');
 
 cur_frm.cscript.account_type = function(doc, cdt, cdn) {
 	if(doc.group_or_ledger=='Ledger') {
diff --git a/erpnext/accounts/doctype/account/account.json b/erpnext/accounts/doctype/account/account.json
index cf9adc5..28a0329 100644
--- a/erpnext/accounts/doctype/account/account.json
+++ b/erpnext/accounts/doctype/account/account.json
@@ -83,13 +83,6 @@
    "search_index": 1
   }, 
   {
-   "fieldname": "report_type", 
-   "fieldtype": "Select", 
-   "label": "Report Type", 
-   "options": "\nBalance Sheet\nProfit and Loss", 
-   "permlevel": 0
-  }, 
-  {
    "description": "Setting Account Type helps in selecting this Account in transactions.", 
    "fieldname": "account_type", 
    "fieldtype": "Select", 
@@ -170,6 +163,22 @@
    "permlevel": 0
   }, 
   {
+   "fieldname": "root_type", 
+   "fieldtype": "Select", 
+   "label": "Root Type", 
+   "options": "\nAsset\nLiability\nIncome\nExpense\nEquity", 
+   "permlevel": 0, 
+   "read_only": 1
+  }, 
+  {
+   "fieldname": "report_type", 
+   "fieldtype": "Select", 
+   "label": "Report Type", 
+   "options": "\nBalance Sheet\nProfit and Loss", 
+   "permlevel": 0, 
+   "read_only": 1
+  }, 
+  {
    "fieldname": "lft", 
    "fieldtype": "Int", 
    "hidden": 1, 
@@ -200,7 +209,7 @@
  "icon": "icon-money", 
  "idx": 1, 
  "in_create": 1, 
- "modified": "2014-05-12 17:03:19.733139", 
+ "modified": "2014-05-21 11:42:47.255511", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Account", 
diff --git a/erpnext/accounts/doctype/account/account.py b/erpnext/accounts/doctype/account/account.py
index ad588b5..c551a62 100644
--- a/erpnext/accounts/doctype/account/account.py
+++ b/erpnext/accounts/doctype/account/account.py
@@ -42,7 +42,7 @@
 		"""Fetch Parent Details and validation for account not to be created under ledger"""
 		if self.parent_account:
 			par = frappe.db.get_value("Account", self.parent_account,
-				["name", "group_or_ledger", "report_type"], as_dict=1)
+				["name", "group_or_ledger", "report_type", "root_type"], as_dict=1)
 			if not par:
 				throw(_("Parent account does not exist"))
 			elif par["name"] == self.name:
@@ -52,6 +52,8 @@
 
 			if par["report_type"]:
 				self.report_type = par["report_type"]
+			if par["root_type"]:
+				self.root_type = par["root_type"]
 
 	def validate_root_details(self):
 		#does not exists parent
@@ -99,6 +101,9 @@
 		if not self.report_type:
 			throw(_("Report Type is mandatory"))
 
+		if not self.root_type:
+			throw(_("Root Type is mandatory"))
+
 	def validate_warehouse_account(self):
 		if not cint(frappe.defaults.get_global_default("auto_accounting_for_stock")):
 			return
@@ -194,10 +199,10 @@
 				throw(_("Account {0} does not exist").format(new))
 
 			val = list(frappe.db.get_value("Account", new_account,
-				["group_or_ledger", "report_type", "company"]))
+				["group_or_ledger", "root_type", "company"]))
 
-			if val != [self.group_or_ledger, self.report_type, self.company]:
-				throw(_("""Merging is only possible if following properties are same in both records. Group or Ledger, Report Type, Company"""))
+			if val != [self.group_or_ledger, self.root_type, self.company]:
+				throw(_("""Merging is only possible if following properties are same in both records. Group or Ledger, Root Type, Company"""))
 
 		return new_account
 
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 3fc2b11..dc5bb57 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -43,4 +43,4 @@
 execute:frappe.db.sql("delete from `tabWebsite Item Group` where ifnull(item_group, '')=''")
 execute:frappe.delete_doc("Print Format", "SalesInvoice")
 execute:import frappe.defaults;frappe.defaults.clear_default("price_list_currency")
-
+erpnext.patches.v4_0.update_account_root_type
diff --git a/erpnext/patches/v4_0/update_account_root_type.py b/erpnext/patches/v4_0/update_account_root_type.py
new file mode 100644
index 0000000..a93b835
--- /dev/null
+++ b/erpnext/patches/v4_0/update_account_root_type.py
@@ -0,0 +1,39 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+	frappe.reload_doc("accounts", "doctype", "account")
+
+	account_table_columns = frappe.db.get_table_columns("Account")
+	if "debit_or_credit" in account_table_columns and "is_pl_account" in account_table_columns:
+		frappe.db.sql("""UPDATE tabAccount
+			SET root_type = CASE
+				WHEN (debit_or_credit='Debit' and is_pl_account = 'No') THEN 'Asset'
+				WHEN (debit_or_credit='Credit' and is_pl_account = 'No') THEN 'Liability'
+				WHEN (debit_or_credit='Debit' and is_pl_account = 'Yes') THEN 'Expense'
+				WHEN (debit_or_credit='Credit' and is_pl_account = 'Yes') THEN 'Income'
+				END
+			WHERE ifnull(parent_account, '') = ''
+		""")
+
+	else:
+		frappe.db.sql("""UPDATE tabAccount
+			SET root_type = CASE
+				WHEN name like '%%asset%%' THEN 'Asset'
+				WHEN name like '%%liabilities%%' THEN 'Liability'
+				WHEN name like '%%expense%%' THEN 'Expense'
+				WHEN name like '%%income%%' THEN 'Income'
+				END
+			WHERE ifnull(parent_account, '') = ''
+		""")
+
+	for root in frappe.db.sql("""SELECT name, lft, rgt, root_type FROM `tabAccount`
+		WHERE ifnull(parent_account, '')=''""",	as_dict=True):
+			if root.root_type:
+				frappe.db.sql("""UPDATE tabAccount SET root_type=%s WHERE lft>%s and rgt<%s""",
+					(root.root_type, root.lft, root.rgt))
+			else:
+				print b"Root type not found for {0}".format(root.name.encode("utf-8"))
diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py
index 6ea4fc2..b79ea44 100644
--- a/erpnext/setup/doctype/company/company.py
+++ b/erpnext/setup/doctype/company/company.py
@@ -81,11 +81,12 @@
 		chart = frappe.get_doc("Chart of Accounts", self.chart_of_accounts)
 		chart.create_accounts(self.name)
 
-	def add_acc(self,lst):
+	def add_acc(self, lst):
 		account = frappe.get_doc({
 			"doctype": "Account",
 			"freeze_account": "No",
 			"master_type": "",
+			"company": self.name
 		})
 
 		for d in self.fld_dict.keys():
@@ -182,77 +183,77 @@
 			'group_or_ledger': 2,
 			'account_type': 3,
 			'report_type': 4,
-			'company': 5,
-			'tax_rate': 6
+			'tax_rate': 5,
+			'root_type': 6
 		}
 
 		acc_list_common = [
-			[_('Application of Funds (Assets)'),'','Group','','Balance Sheet',self.name,''],
-				[_('Current Assets'),_('Application of Funds (Assets)'),'Group','','Balance Sheet',self.name,''],
-					[_('Accounts Receivable'),_('Current Assets'),'Group','','Balance Sheet',self.name,''],
-					[_('Bank Accounts'),_('Current Assets'),'Group','Bank','Balance Sheet',self.name,''],
-					[_('Cash In Hand'),_('Current Assets'),'Group','Cash','Balance Sheet',self.name,''],
-						[_('Cash'),_('Cash In Hand'),'Ledger','Cash','Balance Sheet',self.name,''],
-					[_('Loans and Advances (Assets)'),_('Current Assets'),'Group','','Balance Sheet',self.name,''],
-					[_('Securities and Deposits'),_('Current Assets'),'Group','','Balance Sheet',self.name,''],
-						[_('Earnest Money'),_('Securities and Deposits'),'Ledger','','Balance Sheet',self.name,''],
-					[_('Stock Assets'),_('Current Assets'),'Group','Stock','Balance Sheet',self.name,''],
-					[_('Tax Assets'),_('Current Assets'),'Group','','Balance Sheet',self.name,''],
-				[_('Fixed Assets'),_('Application of Funds (Assets)'),'Group','','Balance Sheet',self.name,''],
-					[_('Capital Equipments'),_('Fixed Assets'),'Ledger','Fixed Asset','Balance Sheet',self.name,''],
-					[_('Computers'),_('Fixed Assets'),'Ledger','Fixed Asset','Balance Sheet',self.name,''],
-					[_('Furniture and Fixture'),_('Fixed Assets'),'Ledger','Fixed Asset','Balance Sheet',self.name,''],
-					[_('Office Equipments'),_('Fixed Assets'),'Ledger','Fixed Asset','Balance Sheet',self.name,''],
-					[_('Plant and Machinery'),_('Fixed Assets'),'Ledger','Fixed Asset','Balance Sheet',self.name,''],
-				[_('Investments'),_('Application of Funds (Assets)'),'Group','','Balance Sheet',self.name,''],
-				[_('Temporary Accounts (Assets)'),_('Application of Funds (Assets)'),'Group','','Balance Sheet',self.name,''],
-					[_('Temporary Account (Assets)'),_('Temporary Accounts (Assets)'),'Ledger','','Balance Sheet',self.name,''],
-			[_('Expenses'),'','Group','Expense Account','Profit and Loss',self.name,''],
-				[_('Direct Expenses'),_('Expenses'),'Group','Expense Account','Profit and Loss',self.name,''],
-					[_('Stock Expenses'),_('Direct Expenses'),'Group','Expense Account','Profit and Loss',self.name,''],
-						[_('Cost of Goods Sold'),_('Stock Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-						[_('Stock Adjustment'),_('Stock Expenses'),'Ledger','Stock Adjustment','Profit and Loss',self.name,''],
-						[_('Expenses Included In Valuation'), _("Stock Expenses"), 'Ledger', 'Expenses Included In Valuation', 'Profit and Loss', self.name, ''],
-				[_('Indirect Expenses'), _('Expenses'),'Group','Expense Account','Profit and Loss',self.name,''],
-					[_('Marketing Expenses'), _('Indirect Expenses'),'Ledger','Chargeable','Profit and Loss',self.name,''],
-					[_('Sales Expenses'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-					[_('Administrative Expenses'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-					[_('Charity and Donations'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-					[_('Commission on Sales'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-					[_('Travel Expenses'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-					[_('Entertainment Expenses'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-					[_('Depreciation'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-					[_('Freight and Forwarding Charges'), _('Indirect Expenses'),'Ledger','Chargeable','Profit and Loss',self.name,''],
-					[_('Legal Expenses'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-					[_('Miscellaneous Expenses'), _('Indirect Expenses'),'Ledger','Chargeable','Profit and Loss',self.name,''],
-					[_('Office Maintenance Expenses'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-					[_('Office Rent'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-					[_('Postal Expenses'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-					[_('Print and Stationary'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-					[_('Rounded Off'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-					[_('Salary') ,_('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-					[_('Telephone Expenses') ,_('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-					[_('Utility Expenses') ,_('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss',self.name,''],
-			[_('Income'),'','Group','','Profit and Loss',self.name,''],
-				[_('Direct Income'),_('Income'),'Group','Income Account','Profit and Loss',self.name,''],
-					[_('Sales'),_('Direct Income'),'Ledger','Income Account','Profit and Loss',self.name,''],
-					[_('Service'),_('Direct Income'),'Ledger','Income Account','Profit and Loss',self.name,''],
-				[_('Indirect Income'),_('Income'),'Group','Income Account','Profit and Loss',self.name,''],
-			[_('Source of Funds (Liabilities)'),'','Group','','Balance Sheet',self.name,''],
-				[_('Capital Account'),_('Source of Funds (Liabilities)'),'Group','','Balance Sheet',self.name,''],
-					[_('Reserves and Surplus'),_('Capital Account'),'Ledger','','Balance Sheet',self.name,''],
-					[_('Shareholders Funds'),_('Capital Account'),'Ledger','','Balance Sheet',self.name,''],
-				[_('Current Liabilities'),_('Source of Funds (Liabilities)'),'Group','','Balance Sheet',self.name,''],
-					[_('Accounts Payable'),_('Current Liabilities'),'Group','','Balance Sheet',self.name,''],
-					[_('Stock Liabilities'),_('Current Liabilities'),'Group','','Balance Sheet',self.name,''],
-						[_('Stock Received But Not Billed'), _('Stock Liabilities'), 'Ledger', 'Stock Received But Not Billed', 'Balance Sheet', self.name, ''],
-					[_('Duties and Taxes'),_('Current Liabilities'),'Group','','Balance Sheet',self.name,''],
-					[_('Loans (Liabilities)'),_('Current Liabilities'),'Group','','Balance Sheet',self.name,''],
-						[_('Secured Loans'),_('Loans (Liabilities)'),'Group','','Balance Sheet',self.name,''],
-						[_('Unsecured Loans'),_('Loans (Liabilities)'),'Group','','Balance Sheet',self.name,''],
-						[_('Bank Overdraft Account'),_('Loans (Liabilities)'),'Group','','Balance Sheet',self.name,''],
-				[_('Temporary Accounts (Liabilities)'),_('Source of Funds (Liabilities)'),'Group','','Balance Sheet',self.name,''],
-					[_('Temporary Account (Liabilities)'),_('Temporary Accounts (Liabilities)'),'Ledger','','Balance Sheet',self.name,'']
+			[_('Application of Funds (Assets)'),'','Group','','Balance Sheet','', 'Asset'],
+				[_('Current Assets'),_('Application of Funds (Assets)'),'Group','','Balance Sheet','', 'Asset'],
+					[_('Accounts Receivable'),_('Current Assets'),'Group','','Balance Sheet','', 'Asset'],
+					[_('Bank Accounts'),_('Current Assets'),'Group','Bank','Balance Sheet','', 'Asset'],
+					[_('Cash In Hand'),_('Current Assets'),'Group','Cash','Balance Sheet','', 'Asset'],
+						[_('Cash'),_('Cash In Hand'),'Ledger','Cash','Balance Sheet','', 'Asset'],
+					[_('Loans and Advances (Assets)'),_('Current Assets'),'Group','','Balance Sheet','', 'Asset'],
+					[_('Securities and Deposits'),_('Current Assets'),'Group','','Balance Sheet','', 'Asset'],
+						[_('Earnest Money'),_('Securities and Deposits'),'Ledger','','Balance Sheet','', 'Asset'],
+					[_('Stock Assets'),_('Current Assets'),'Group','Stock','Balance Sheet','', 'Asset'],
+					[_('Tax Assets'),_('Current Assets'),'Group','','Balance Sheet','', 'Asset'],
+				[_('Fixed Assets'),_('Application of Funds (Assets)'),'Group','','Balance Sheet','', 'Asset'],
+					[_('Capital Equipments'),_('Fixed Assets'),'Ledger','Fixed Asset','Balance Sheet','', 'Asset'],
+					[_('Computers'),_('Fixed Assets'),'Ledger','Fixed Asset','Balance Sheet','', 'Asset'],
+					[_('Furniture and Fixture'),_('Fixed Assets'),'Ledger','Fixed Asset','Balance Sheet','', 'Asset'],
+					[_('Office Equipments'),_('Fixed Assets'),'Ledger','Fixed Asset','Balance Sheet','', 'Asset'],
+					[_('Plant and Machinery'),_('Fixed Assets'),'Ledger','Fixed Asset','Balance Sheet','', 'Asset'],
+				[_('Investments'),_('Application of Funds (Assets)'),'Group','','Balance Sheet','', 'Asset'],
+				[_('Temporary Accounts (Assets)'),_('Application of Funds (Assets)'),'Group','','Balance Sheet','', 'Asset'],
+					[_('Temporary Account (Assets)'),_('Temporary Accounts (Assets)'),'Ledger','','Balance Sheet','', 'Asset'],
+			[_('Expenses'),'','Group','Expense Account','Profit and Loss','', 'Expense'],
+				[_('Direct Expenses'),_('Expenses'),'Group','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Stock Expenses'),_('Direct Expenses'),'Group','Expense Account','Profit and Loss','', 'Expense'],
+						[_('Cost of Goods Sold'),_('Stock Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+						[_('Stock Adjustment'),_('Stock Expenses'),'Ledger','Stock Adjustment','Profit and Loss','', 'Expense'],
+						[_('Expenses Included In Valuation'), _("Stock Expenses"), 'Ledger', 'Expenses Included In Valuation', 'Profit and Loss',  '', 'Expense'],
+				[_('Indirect Expenses'), _('Expenses'),'Group','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Marketing Expenses'), _('Indirect Expenses'),'Ledger','Chargeable','Profit and Loss','', 'Expense'],
+					[_('Sales Expenses'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Administrative Expenses'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Charity and Donations'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Commission on Sales'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Travel Expenses'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Entertainment Expenses'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Depreciation'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Freight and Forwarding Charges'), _('Indirect Expenses'),'Ledger','Chargeable','Profit and Loss','', 'Expense'],
+					[_('Legal Expenses'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Miscellaneous Expenses'), _('Indirect Expenses'),'Ledger','Chargeable','Profit and Loss','', 'Expense'],
+					[_('Office Maintenance Expenses'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Office Rent'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Postal Expenses'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Print and Stationary'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Rounded Off'), _('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Salary') ,_('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Telephone Expenses') ,_('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+					[_('Utility Expenses') ,_('Indirect Expenses'),'Ledger','Expense Account','Profit and Loss','', 'Expense'],
+			[_('Income'),'','Group','','Profit and Loss','', 'Income'],
+				[_('Direct Income'),_('Income'),'Group','Income Account','Profit and Loss','', 'Income'],
+					[_('Sales'),_('Direct Income'),'Ledger','Income Account','Profit and Loss','', 'Income'],
+					[_('Service'),_('Direct Income'),'Ledger','Income Account','Profit and Loss','', 'Income'],
+				[_('Indirect Income'),_('Income'),'Group','Income Account','Profit and Loss','', 'Income'],
+			[_('Source of Funds (Liabilities)'),'','Group','','Balance Sheet','', 'Income'],
+				[_('Capital Account'),_('Source of Funds (Liabilities)'),'Group','','Balance Sheet','', 'Liability'],
+					[_('Reserves and Surplus'),_('Capital Account'),'Ledger','','Balance Sheet','', 'Liability'],
+					[_('Shareholders Funds'),_('Capital Account'),'Ledger','','Balance Sheet','', 'Liability'],
+				[_('Current Liabilities'),_('Source of Funds (Liabilities)'),'Group','','Balance Sheet','', 'Liability'],
+					[_('Accounts Payable'),_('Current Liabilities'),'Group','','Balance Sheet','', 'Liability'],
+					[_('Stock Liabilities'),_('Current Liabilities'),'Group','','Balance Sheet','', 'Liability'],
+						[_('Stock Received But Not Billed'), _('Stock Liabilities'), 'Ledger', 'Stock Received But Not Billed', 'Balance Sheet',  '', 'Liability'],
+					[_('Duties and Taxes'),_('Current Liabilities'),'Group','','Balance Sheet','', 'Liability'],
+					[_('Loans (Liabilities)'),_('Current Liabilities'),'Group','','Balance Sheet','', 'Liability'],
+						[_('Secured Loans'),_('Loans (Liabilities)'),'Group','','Balance Sheet','', 'Liability'],
+						[_('Unsecured Loans'),_('Loans (Liabilities)'),'Group','','Balance Sheet','', 'Liability'],
+						[_('Bank Overdraft Account'),_('Loans (Liabilities)'),'Group','','Balance Sheet','', 'Liability'],
+				[_('Temporary Accounts (Liabilities)'),_('Source of Funds (Liabilities)'),'Group','','Balance Sheet','', 'Liability'],
+					[_('Temporary Account (Liabilities)'),_('Temporary Accounts (Liabilities)'),'Ledger','','Balance Sheet','', 'Liability']
 		]
 
 		# load common account heads
diff --git a/erpnext/setup/doctype/email_digest/email_digest.json b/erpnext/setup/doctype/email_digest/email_digest.json
index 971e3ed..48819e0 100644
--- a/erpnext/setup/doctype/email_digest/email_digest.json
+++ b/erpnext/setup/doctype/email_digest/email_digest.json
@@ -96,7 +96,7 @@
   {
    "fieldname": "income_year_to_date", 
    "fieldtype": "Check", 
-   "hidden": 1, 
+   "hidden": 0, 
    "label": "Income Year to Date", 
    "permlevel": 0
   }, 
@@ -104,7 +104,7 @@
    "description": "Income booked for the digest period", 
    "fieldname": "income", 
    "fieldtype": "Check", 
-   "hidden": 1, 
+   "hidden": 0, 
    "label": "Income Booked", 
    "permlevel": 0
   }, 
@@ -112,25 +112,11 @@
    "description": "Expenses booked for the digest period", 
    "fieldname": "expenses_booked", 
    "fieldtype": "Check", 
-   "hidden": 1, 
+   "hidden": 0, 
    "label": "Expenses Booked", 
    "permlevel": 0
   }, 
   {
-   "description": "Payments received during the digest period", 
-   "fieldname": "collections", 
-   "fieldtype": "Check", 
-   "label": "Payments Received", 
-   "permlevel": 0
-  }, 
-  {
-   "description": "Payments made during the digest period", 
-   "fieldname": "payments", 
-   "fieldtype": "Check", 
-   "label": "Payments Made", 
-   "permlevel": 0
-  }, 
-  {
    "description": "Receivable / Payable account will be identified based on the field Master Type", 
    "fieldname": "column_break_16", 
    "fieldtype": "Column Break", 
@@ -152,6 +138,20 @@
    "permlevel": 0
   }, 
   {
+   "description": "Payments received during the digest period", 
+   "fieldname": "collections", 
+   "fieldtype": "Check", 
+   "label": "Payments Received", 
+   "permlevel": 0
+  }, 
+  {
+   "description": "Payments made during the digest period", 
+   "fieldname": "payments", 
+   "fieldtype": "Check", 
+   "label": "Payments Made", 
+   "permlevel": 0
+  }, 
+  {
    "fieldname": "section_break_20", 
    "fieldtype": "Section Break", 
    "label": "Buying & Selling", 
@@ -328,7 +328,7 @@
  ], 
  "icon": "icon-envelope", 
  "idx": 1, 
- "modified": "2014-05-09 02:16:43.979204", 
+ "modified": "2014-05-20 14:02:36.762220", 
  "modified_by": "Administrator", 
  "module": "Setup", 
  "name": "Email Digest", 
diff --git a/erpnext/setup/doctype/email_digest/email_digest.py b/erpnext/setup/doctype/email_digest/email_digest.py
index 8b0d6f7..066e3b5 100644
--- a/erpnext/setup/doctype/email_digest/email_digest.py
+++ b/erpnext/setup/doctype/email_digest/email_digest.py
@@ -13,8 +13,7 @@
 from frappe.core.doctype.user.user import STANDARD_USERS
 
 content_sequence = [
-	# ["Income / Expenses", ["income_year_to_date", "bank_balance",
-	# 	"income", "expenses_booked"]],
+	["Income / Expenses", ["income_year_to_date", "income", "expenses_booked"]],
 	["Receivables / Payables", ["collections", "payments",
 		"invoiced_amount", "payables"]],
 	["Bank Balance", ["bank_balance"]],
@@ -154,9 +153,9 @@
 
 		return msg
 
-	# def get_income_year_to_date(self):
-	# 	return self.get_income(frappe.db.get_defaults("year_start_date"),
-	# 		self.meta.get_label("income_year_to_date"))
+	def get_income_year_to_date(self):
+		return self.get_income(frappe.db.get_defaults("year_start_date"),
+			self.meta.get_label("income_year_to_date"))
 
 	def get_bank_balance(self):
 		# account is of type "Bank" or "Cash"
@@ -169,36 +168,34 @@
 				accounts[gle["account"]][1] += gle["debit"] - gle["credit"]
 
 		# build html
-		out = self.get_html("Bank/Cash Balance", "", "")
+		out = self.get_html("Bank/Cash Balance as on " + formatdate(self.to_date), "", "")
 		for ac in ackeys:
 			if accounts[ac][1]:
 				out += "\n" + self.get_html(accounts[ac][0], self.currency,
 					fmt_money(accounts[ac][1]), style="margin-left: 17px")
 		return sum((accounts[ac][1] for ac in ackeys)), out
 
-	# def get_income(self, from_date=None, label=None):
-	# 	# account is PL Account and Credit type account
-	# 	accounts = [a["name"] for a in self.get_accounts() if a["root_type"]=="Income"]
-	#
-	# 	income = 0
-	# 	for gle in self.get_gl_entries(from_date or self.from_date, self.to_date):
-	# 		if gle["account"] in accounts:
-	# 			income += gle["credit"] - gle["debit"]
-	#
-	# 	return income, self.get_html(label or self.meta.get_label("income"), self.currency,
-	# 		fmt_money(income))
-	#
-	# def get_expenses_booked(self):
-	# 	# account is PL Account and Debit type account
-	# 	accounts = [a["name"] for a in self.get_accounts() if a["root_type"]=="Expense"]
-	#
-	# 	expense = 0
-	# 	for gle in self.get_gl_entries(self.from_date, self.to_date):
-	# 		if gle["account"] in accounts:
-	# 			expense += gle["debit"] - gle["credit"]
-	#
-	# 	return expense, self.get_html(self.meta.get_label("expenses_booked"), self.currency,
-	# 		fmt_money(expense))
+	def get_income(self, from_date=None, label=None):
+		accounts = [a["name"] for a in self.get_accounts() if a["root_type"]=="Income"]
+
+		income = 0
+		for gle in self.get_gl_entries(from_date or self.from_date, self.to_date):
+			if gle["account"] in accounts:
+				income += gle["credit"] - gle["debit"]
+
+		return income, self.get_html(label or self.meta.get_label("income"), self.currency,
+			fmt_money(income))
+
+	def get_expenses_booked(self):
+		accounts = [a["name"] for a in self.get_accounts() if a["root_type"]=="Expense"]
+
+		expense = 0
+		for gle in self.get_gl_entries(self.from_date, self.to_date):
+			if gle["account"] in accounts:
+				expense += gle["debit"] - gle["credit"]
+
+		return expense, self.get_html(self.meta.get_label("expenses_booked"), self.currency,
+			fmt_money(expense))
 
 	def get_collections(self):
 		return self.get_party_total("Customer", "credit", self.meta.get_label("collections"))
@@ -390,7 +387,7 @@
 
 	def get_accounts(self):
 		if not hasattr(self, "accounts"):
-			self.accounts = frappe.db.sql("""select name, account_type, account_name, master_type
+			self.accounts = frappe.db.sql("""select name, account_type, account_name, master_type, root_type
 				from `tabAccount` where company=%s and docstatus < 2
 				and group_or_ledger = "Ledger" order by lft""",
 				(self.company,), as_dict=1)
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.js b/erpnext/setup/page/setup_wizard/setup_wizard.js
index cf16656..dc6d244 100644
--- a/erpnext/setup/page/setup_wizard/setup_wizard.js
+++ b/erpnext/setup/page/setup_wizard/setup_wizard.js
@@ -192,7 +192,7 @@
 					{fieldname:'company_name', label: __('Company Name'), fieldtype:'Data', reqd:1,
 						placeholder: __('e.g. "My Company LLC"')},
 					{fieldname:'company_abbr', label: __('Company Abbreviation'), fieldtype:'Data',
-						placeholder: __('e.g. "MC"'),reqd:1},
+						description: __('Max 5 characters'), placeholder: __('e.g. "MC"'), reqd:1},
 					{fieldname:'fy_start_date', label:__('Financial Year Start Date'), fieldtype:'Date',
 						description: __('Your financial year begins on'), reqd:1},
 					{fieldname:'fy_end_date', label:__('Financial Year End Date'), fieldtype:'Date',
@@ -205,9 +205,16 @@
 					slide.get_input("company_name").on("change", function() {
 						var parts = slide.get_input("company_name").val().split(" ");
 						var abbr = $.map(parts, function(p) { return p ? p.substr(0,1) : null }).join("");
-						slide.get_input("company_abbr").val(abbr.toUpperCase());
+						slide.get_input("company_abbr").val(abbr.slice(0, 5).toUpperCase());
 					}).val(frappe.boot.sysdefaults.company_name || "").trigger("change");
 
+					slide.get_input("company_abbr").on("change", function() {
+						if(slide.get_input("company_abbr").val().length > 5) {
+							msgprint("Company Abbreviation cannot have more than 5 characters");
+							slide.get_input("company_abbr").val("");
+						}
+					});
+
 					slide.get_input("fy_start_date").on("change", function() {
 						var year_end_date =
 							frappe.datetime.add_days(frappe.datetime.add_months(
