diff --git a/accounts/page/accounts_browser/accounts_browser.js b/accounts/page/accounts_browser/accounts_browser.js
index 78776ce..6a6d97e 100644
--- a/accounts/page/accounts_browser/accounts_browser.js
+++ b/accounts/page/accounts_browser/accounts_browser.js
@@ -22,7 +22,8 @@
 
 pscript['onload_Accounts Browser'] = function(wrapper){
 	wrapper.appframe = new wn.ui.AppFrame($(wrapper).find('.appframe-area'));
-	wrapper.appframe.add_module_tab("Accounts");
+	wrapper.appframe.add_home_breadcrumb()
+	wrapper.appframe.add_module_breadcrumb("Accounts")
 	
 	if (wn.boot.profile.can_create.indexOf("Company") !== -1) {
 		wrapper.appframe.add_button('New Company', function() { newdoc('Company'); },
diff --git a/accounts/page/financial_analytics/financial_analytics.js b/accounts/page/financial_analytics/financial_analytics.js
index cf96258..f0bafdb 100644
--- a/accounts/page/financial_analytics/financial_analytics.js
+++ b/accounts/page/financial_analytics/financial_analytics.js
@@ -24,7 +24,9 @@
 	});
 	erpnext.trial_balance = new erpnext.FinancialAnalytics(wrapper, 'Financial Analytics');
 	
-	wrapper.appframe.add_module_tab("Accounts");
+	wrapper.appframe.add_home_breadcrumb()
+	wrapper.appframe.add_module_breadcrumb("Accounts")
+	wrapper.appframe.add_breadcrumb("icon-bar-chart")
 }
 
 erpnext.FinancialAnalytics = erpnext.AccountTreeGrid.extend({
diff --git a/accounts/page/general_ledger/general_ledger.js b/accounts/page/general_ledger/general_ledger.js
index d163021..cee749f 100644
--- a/accounts/page/general_ledger/general_ledger.js
+++ b/accounts/page/general_ledger/general_ledger.js
@@ -23,7 +23,9 @@
 	
 	erpnext.general_ledger = new erpnext.GeneralLedger(wrapper);
 	
-	wrapper.appframe.add_module_tab("Accounts");
+	wrapper.appframe.add_home_breadcrumb()
+	wrapper.appframe.add_module_breadcrumb("Accounts")
+	wrapper.appframe.add_breadcrumb("icon-bar-chart")
 
 }
 
diff --git a/accounts/page/trial_balance/trial_balance.js b/accounts/page/trial_balance/trial_balance.js
index 3d05d49..9ea7666 100644
--- a/accounts/page/trial_balance/trial_balance.js
+++ b/accounts/page/trial_balance/trial_balance.js
@@ -56,5 +56,7 @@
 	})
 	erpnext.trial_balance = new TrialBalance(wrapper, 'Trial Balance');
 	
-	wrapper.appframe.add_module_tab("Accounts");
+	wrapper.appframe.add_home_breadcrumb()
+	wrapper.appframe.add_module_breadcrumb("Accounts")
+	wrapper.appframe.add_breadcrumb("icon-bar-chart")
 }
\ No newline at end of file
diff --git a/buying/page/purchase_analytics/purchase_analytics.js b/buying/page/purchase_analytics/purchase_analytics.js
index d1af656..6919ad3 100644
--- a/buying/page/purchase_analytics/purchase_analytics.js
+++ b/buying/page/purchase_analytics/purchase_analytics.js
@@ -23,7 +23,9 @@
 	
 	new erpnext.PurchaseAnalytics(wrapper);
 	
-	wrapper.appframe.add_module_tab("Buying");
+	wrapper.appframe.add_home_breadcrumb()
+	wrapper.appframe.add_module_breadcrumb("Buying")
+	wrapper.appframe.add_breadcrumb("icon-bar-chart")
 }
 
 erpnext.PurchaseAnalytics = wn.views.TreeGridReport.extend({
diff --git a/home/page/attributions/attributions.css b/home/page/attributions/attributions.css
index e69de29..68ec516 100644
--- a/home/page/attributions/attributions.css
+++ b/home/page/attributions/attributions.css
@@ -0,0 +1,6 @@
+.layout-attributions table {
+	width: 70%;
+}
+.layout-attributions td:first-child {
+	width: 30%;
+}
\ No newline at end of file
diff --git a/home/page/attributions/attributions.html b/home/page/attributions/attributions.html
index ab879b7..37ee25b 100644
--- a/home/page/attributions/attributions.html
+++ b/home/page/attributions/attributions.html
@@ -1,83 +1,99 @@
-<div class="layout-wrapper">
-	<a class="close" onclick="window.history.back();">&times;</a>
-	<h1>Attributions</h1>
+<div class="layout-wrapper layout-wrapper-appframe layout-attributions">
+	<div class="layout-appframe"></div>
+	<div class="layout-main">
+	<h3>ERPNext is made using these Awesome Open Source Projects <i class="icon-heart" style="color: red"></i></h3>
 	<hr>
-	<p><b>Source Code:</b> <a href="https://github.com/webnotes/erpnext">
-				https://github.com/webnotes/erpnext</a></p>
-	<p><b>Website:</b> <a href="https://erpnext.com">
-				https://erpnext.com</a></p>
+	<table class="table table-bordered table-striped">
+		<tbody>
+		<tr>
+			<td><a href="https://github.com/webnotes/wnframework">wnframework</a></td>
+			<td>The full stack Python + Javascript web application framework on which ERPNext is built.</td>
+		</tr>
+		<tr>
+			<td><a href="https://github.com/webnotes/erpnext">ERPNext</a></td>
+			<td>Web based, Open Source ERP.</td>
+		</tr>
+		<tr>
+			<td><a href="http://en.wikipedia.org/wiki/Linux">Linux Operating System</a></td>
+			<td>The operating system that brought a revolution in Open Source software.</td>
+		</tr>
+		<tr>
+			<td><a href="http://www.mysql.com/">MySQL Database</a></td>
+			<td>The world's most popular Open Source Database.</td>
+		</tr>
+		<tr>
+			<td><a href="http://httpd.apache.org">Apache HTTPD web server</a></td>
+			<td>The Number One HTTP Server On The Internet.</td>
+		</tr>
+		<tr>
+			<td><a href="http://python.org/">Python Programming Language</a></td>
+			<td>The "batteries included" language that lets you write elegant code, quickly.<br><br>Python Libraries:
+			<ul>
+				<li>MySQLdb
+				<li>pytz
+				<li>jinja2
+				<li>markdown2
+				<li>dateutil
+				<li>termcolor
+				<li>python-memcached
+			</ul>
+			</td>
+		</tr>
+		<tr>
+			<td><a href="http://git-scm.com/">Git - Source Code Management</a></td>
+			<td>Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.<br><br>
+				Kindly hosted on the web by <a href="https://github.com">GitHub</a>: The service that makes it easier for individuals and teams to write better code, faster. </td>
+		</tr>
+		<tr>
+			<td><a href="http://jquery.com/">JQuery Javascript Libary</a></td>
+			<td>The write less, do more Javascript Library.</td>
+		</tr>
+		<tr>
+			<td><a href="http://jqueryui.com/">JQuery UI - User Interface Library</a></td>
+			<td>A curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.</td>
+		</tr>
+		<tr>
+			<td><a href="http://twitter.github.com/bootstrap/index.html">Bootstrap CSS Framework</a></td>
+			<td>Sleek, intuitive, and powerful front-end framework for faster and easier web development.</td>
+		</tr>
+		<tr>
+			<td><a href="http://fortawesome.github.com/Font-Awesome/">Font Awesome - Icons</a></td>
+			<td>The iconic font designed for use with Twitter Bootstrap.</td>
+		</tr>
+		<tr>
+			<td><a href="http://www.tinymce.com/">TinyMCE Rich Text Editor</a></td>
+			<td>TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under LGPL by Moxiecode Systems AB.</td>
+		</tr>
+		<tr>
+			<td><a href="https://github.com/mleibman/SlickGrid">SlickGrid</a></td>
+			<td>A lightning fast JavaScript grid/spreadsheet.</td>
+		</tr>		
+		<tr>
+			<td><a href="http://www.flotcharts.org/">Flot Charting Library</a></td>
+			<td>Attractive JavaScript plotting for jQuery.</td>
+		</tr>		
+		<tr>
+			<td><a href="http://ace.ajax.org/">Ace Code Editor</a></td>
+			<td>High Performance Code Editor for the web.</td>
+		</tr>
+		<tr>
+			<td><a href="http://taitems.github.com/jQuery.Gantt/">JQuery.Gantt - Gantt Charts</a></td>
+			<td>Draw Gantt charts with the famous jQuery ease of development.</td>
+		</tr>
+		<tr>
+			<td><a href="http://jscolor.com/">JSColor - Color Picker</a></td>
+			<td>HTML/Javascript Color Picker.</td>
+		</tr>
+		<tr>
+			<td><a href="https://github.com/dcneiner/Downloadify">Downloadify - Flash Download Widget</a></td>
+			<td>A tiny javascript + Flash library that enables the creation and download of text files without server interaction.</td>
+		</tr>				
+		</tbody>
+	</table>
+	
 	<hr>
-	<p class="help">ERPNext is an Open Source project and is possible because of the work of
-		thousands of software developers, companies and designers who have contributed their
-		work to the community. We have tried to list as many projects as possible that are
-		used by ERPNext, but this list may not be exhaustive.</p>
-
-
-	<h4>Server</h4>
-	<ul>
-		<li>Linux (GNU)</li>
-		<li>Apache HTTPD server (web server)</li>
-		<li>MySQL (database, Percona build)</li>
-		<li>Git (source code control via Github)</li>
-	</ul>
-		
-	<h4>Programming Languages & Libraries</h4>
-	<ul>
-		<li><a href="http://python.org">Python</a></li>
-		<ul>
-			<li>Python-MySQL</li>
-			<li>pytz (timezones)</li>
-			<li>jinja2 (templating)</li>
-			<li>markdown2 (markdown parser)</li>
-			<li>jsmin (javascript minifier)</li>
-		</ul>
-		<li>Javascript</li>
-		<ul>
-			<li>JQuery</li>
-			<li>JQuery UI (datepicker, sortable)</li>
-			<li>TinyMCE - text editor</li>
-			<li>Twitter Bootstrap</li>
-			<li>Ace - code editor</li>
-			<li>Slick Grid - report grid</li>
-			<li>jQPlot - graphs</li>
-			<li><a href="http://taitems.github.com/jQuery.Gantt/" target="_blank">
-				JQuery.Gantt</a> - Gantt Chart</li>
-			<li>JSON2 - JSON builder, parser</li>
-			<li>JSColor - color picker</li>
-			<li><a href="https://github.com/dcneiner/Downloadify" target="_blank">
-				Downloadify</a> - Export CSV files from the browser</li>
-			<li><a href="https://github.com/harvesthq/chosen" target="_blank">
-				Chosen</a> - a searchable select dropdown</li>
-		</ul>
-	</ul>
-
-	<h4>CSS Frameworks</h4>
-	<ul>
-		<li>Twitter Bootstrap</li>
-	</ul>
-		
-	<h4>Icons</h4>
-	<ul>
-		<li>The Noun Project</li>
-		<li>Font Awesome: http://fortawesome.github.com/Font-Awesome</li>
-	</ul>
-
-	<h4>Web Frameworks</h4>
-	<ul>
-		<li>wnframework</li>
-	</ul>
-
-	<h4>Web Browsers</h4>
-	<ul>
-		<li>Mozilla Firefox</li>
-		<ul>
-			<li>Firebug (debugger)</li>
-		</ul>
-		<li>Apple Safari</li>
-		<li>Google Chorme</li>
-	</ul>
-	<hr>
-	<h2>ERPNext License</h2>
+	<h3>ERPNext License: GNU/General Public License</h3>
+	<div class="well">
 	<p><b>ERPNext - Open Source, web based ERP</b></p>
 	<p>Copyright &copy; 2008 onwards, Web Notes Technologies Pvt Ltd, India</p>
 
@@ -92,6 +108,9 @@
 	    GNU General Public License for more details.</p>
 
  		<p>For complete license see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a></p>
+	</div>
+	<p class="alert">Note: A link to this page must be easily accessible and all other ERPNext branding must remain as it is.</p>
 	<hr>
 	<p>For more information please write to us at support@erpnext.com</p>
+	</div>
 </div>
\ No newline at end of file
diff --git a/home/page/attributions/attributions.js b/home/page/attributions/attributions.js
index fc56784..29eb72f 100644
--- a/home/page/attributions/attributions.js
+++ b/home/page/attributions/attributions.js
@@ -1 +1,4 @@
-wn.pages['attributions'].onload = function(wrapper) { }
\ No newline at end of file
+wn.pages['attributions'].onload = function(wrapper) { 
+	wrapper.appframe = new wn.ui.AppFrame($(wrapper).find(".layout-appframe"), 
+		"Attributions");
+}
\ No newline at end of file
diff --git a/home/page/desktop/desktop.js b/home/page/desktop/desktop.js
index e154b3a..fc5f22b 100644
--- a/home/page/desktop/desktop.js
+++ b/home/page/desktop/desktop.js
@@ -32,7 +32,7 @@
 	}
 	
 	// modules
-	var modules_list = wn.user.get_default("_desktop_items") || wn.boot.modules_list;
+	var modules_list = wn.user.get_desktop_items();
 	$.each(modules_list, function(i, m) {
 		if(!in_list(['Setup', 'Core'], m) && wn.boot.profile.allow_modules.indexOf(m)!=-1)
 			add_icon(m);
@@ -75,11 +75,11 @@
 	}
 
 	add_circle('module-icon-messages', 'unread_messages', 'Unread Messages');
-	add_circle('module-icon-support', 'open_support_tickets', 'Open Support Tickets');
+	add_circle('module-icon-support-home', 'open_support_tickets', 'Open Support Tickets');
 	add_circle('module-icon-todo', 'things_todo', 'Things To Do');
 	add_circle('module-icon-calendar', 'todays_events', 'Todays Events');
-	add_circle('module-icon-project', 'open_tasks', 'Open Tasks');
-	add_circle('module-icon-kb', 'unanswered_questions', 'Unanswered Questions');
+	add_circle('module-icon-projects-home', 'open_tasks', 'Open Tasks');
+	add_circle('module-icon-questions', 'unanswered_questions', 'Unanswered Questions');
 
 	erpnext.update_messages();
 
diff --git a/home/page/latest_updates/latest_updates.js b/home/page/latest_updates/latest_updates.js
index 47d08c7..539d64d 100644
--- a/home/page/latest_updates/latest_updates.js
+++ b/home/page/latest_updates/latest_updates.js
@@ -1,7 +1,7 @@
 erpnext.updates = [
 	["21st December 2012", [
 		"Manufacturing: For Material Transfer against Production Order, \
-			fetch quantity pending to be transferred for each item."
+			fetch quantity pending to be transferred for each item.",
 		"Desktop: New Icons and now sortable by dragging."
 	]],
 	["20th December 2012", [
diff --git a/hr/doctype/attendance/attendance.txt b/hr/doctype/attendance/attendance.txt
index 2ef65ac..bd8b2a3 100644
--- a/hr/doctype/attendance/attendance.txt
+++ b/hr/doctype/attendance/attendance.txt
@@ -2,9 +2,9 @@
  {
   "owner": "ashwini@webnotestech.com", 
   "docstatus": 0, 
-  "creation": "2012-07-03 13:30:41", 
+  "creation": "2012-12-14 14:27:05", 
   "modified_by": "Administrator", 
-  "modified": "2012-12-13 14:23:24"
+  "modified": "2012-12-23 09:42:45"
  }, 
  {
   "is_submittable": 1, 
@@ -134,7 +134,7 @@
   "doctype": "DocField", 
   "label": "Fiscal Year", 
   "oldfieldname": "fiscal_year", 
-  "options": "\n2012\n2013", 
+  "options": "link:Fiscal Year", 
   "fieldname": "fiscal_year", 
   "fieldtype": "Select", 
   "reqd": 1, 
@@ -146,7 +146,7 @@
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
-  "options": "\nAlpha\nBeta\nDemo Company", 
+  "options": "link:Company", 
   "fieldname": "company", 
   "fieldtype": "Select", 
   "reqd": 1, 
@@ -175,15 +175,15 @@
   "permlevel": 1
  }, 
  {
+  "role": "System Manager", 
+  "doctype": "DocPerm"
+ }, 
+ {
   "role": "HR User", 
   "doctype": "DocPerm"
  }, 
  {
   "role": "HR Manager", 
   "doctype": "DocPerm"
- }, 
- {
-  "role": "System Manager", 
-  "doctype": "DocPerm"
  }
 ]
\ No newline at end of file
diff --git a/projects/doctype/task/task.py b/projects/doctype/task/task.py
index c390806..83f8995 100644
--- a/projects/doctype/task/task.py
+++ b/projects/doctype/task/task.py
@@ -24,8 +24,6 @@
 
 sql = webnotes.conn.sql
 
-
-
 class DocType:
 	def __init__(self,doc,doclist=[]):
 		self.doc = doc
@@ -37,7 +35,6 @@
 			ret = {'customer': cust and cust[0][0] or '', 'customer_name': cust and cust[0][1] or ''}
 			return ret
 
-	# TODO: Remove these? as the field customer doesn't exists
 	def get_customer_details(self):
 		cust = sql("select customer_name from `tabCustomer` where name=%s", self.doc.customer)
 		if cust:
diff --git a/projects/doctype/task/task.txt b/projects/doctype/task/task.txt
index a7ada4b..f47d2eb 100644
--- a/projects/doctype/task/task.txt
+++ b/projects/doctype/task/task.txt
@@ -2,27 +2,18 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2012-09-18 11:05:48", 
+  "creation": "2012-10-29 14:30:00", 
   "modified_by": "Administrator", 
-  "modified": "2012-10-29 14:24:55"
+  "modified": "2012-12-24 10:46:06"
  }, 
  {
-  "section_style": "Tray", 
-  "allow_attach": 1, 
-  "tag_fields": "status", 
-  "module": "Projects", 
-  "server_code_error": " ", 
-  "allow_trash": 1, 
-  "doctype": "DocType", 
-  "document_type": "Master", 
-  "subject": "%(subject)s", 
   "autoname": "TASK.#####", 
-  "name": "__common__", 
-  "colour": "White:FFF", 
-  "_last_update": "1324880734", 
-  "show_in_menu": 0, 
+  "allow_attach": 1, 
+  "doctype": "DocType", 
+  "module": "Projects", 
   "max_attachments": 5, 
-  "version": 1
+  "document_type": "Master", 
+  "name": "__common__"
  }, 
  {
   "name": "__common__", 
@@ -74,13 +65,13 @@
   "reqd": 0
  }, 
  {
-  "search_index": 1, 
+  "oldfieldtype": "Date", 
   "doctype": "DocField", 
   "label": "Expected End Date", 
   "oldfieldname": "exp_end_date", 
   "fieldname": "exp_end_date", 
   "fieldtype": "Date", 
-  "oldfieldtype": "Date", 
+  "search_index": 1, 
   "reqd": 0, 
   "in_filter": 1
  }, 
@@ -93,11 +84,9 @@
  }, 
  {
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Project", 
   "oldfieldname": "project", 
-  "trigger": "Client", 
   "fieldname": "project", 
   "fieldtype": "Link", 
   "options": "Project"
@@ -105,23 +94,21 @@
  {
   "no_copy": 1, 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Status", 
   "oldfieldname": "status", 
-  "trigger": "Client", 
   "fieldname": "status", 
   "fieldtype": "Select", 
   "options": "Open\nWorking\nPending Review\nClosed\nCancelled"
  }, 
  {
-  "search_index": 1, 
+  "oldfieldtype": "Select", 
   "doctype": "DocField", 
   "label": "Priority", 
   "oldfieldname": "priority", 
   "fieldname": "priority", 
   "fieldtype": "Select", 
-  "oldfieldtype": "Select", 
+  "search_index": 1, 
   "reqd": 0, 
   "options": "Low\nMedium\nHigh\nUrgent", 
   "in_filter": 1
@@ -217,13 +204,12 @@
  }, 
  {
   "doctype": "DocField", 
+  "label": "More Details", 
   "fieldname": "more_details", 
-  "fieldtype": "Section Break", 
-  "label": "More Details"
+  "fieldtype": "Section Break"
  }, 
  {
   "oldfieldtype": "Date", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Review Date", 
   "oldfieldname": "review_date", 
@@ -234,7 +220,6 @@
  }, 
  {
   "oldfieldtype": "Date", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Closing Date", 
   "oldfieldname": "closing_date", 
@@ -260,7 +245,7 @@
   "permlevel": 0
  }, 
  {
-  "permlevel": 1, 
-  "doctype": "DocPerm"
+  "doctype": "DocPerm", 
+  "permlevel": 1
  }
 ]
\ No newline at end of file
diff --git a/public/js/toolbar.js b/public/js/toolbar.js
index 7ade8f8..f1eddb0 100644
--- a/public/js/toolbar.js
+++ b/public/js/toolbar.js
@@ -54,16 +54,11 @@
 		</ul>\
 		</li>').prependTo('.navbar .nav:first');
 	
-	// if no modules list then show all
-	if(wn.boot.modules_list && typeof(wn.boot.modules_list) == 'string') {
-		wn.boot.modules_list = JSON.parse(wn.boot.modules_list);	
-	}
-	else
-		wn.boot.modules_list = keys(wn.modules).sort();
+	var modules_list = wn.user.get_desktop_items();
 
 	// add to dropdown
-	for(var i in wn.boot.modules_list) {
-		var m = wn.boot.modules_list[i]
+	for(var i in modules_list) {
+		var m = modules_list[i]
 		
 		if(m!='Setup' && wn.boot.profile.allow_modules.indexOf(m)!=-1 && wn.modules[m]) {
 			args = {
diff --git a/selling/page/sales_analytics/sales_analytics.js b/selling/page/sales_analytics/sales_analytics.js
index 6c47133..3d54203 100644
--- a/selling/page/sales_analytics/sales_analytics.js
+++ b/selling/page/sales_analytics/sales_analytics.js
@@ -22,7 +22,9 @@
 	});
 	new erpnext.SalesAnalytics(wrapper);
 	
-	wrapper.appframe.add_module_tab("Selling");
+	wrapper.appframe.add_home_breadcrumb()
+	wrapper.appframe.add_module_breadcrumb("Selling")
+	wrapper.appframe.add_breadcrumb("icon-bar-chart")
 }
 
 erpnext.SalesAnalytics = wn.views.TreeGridReport.extend({
diff --git a/selling/page/sales_browser/sales_browser.js b/selling/page/sales_browser/sales_browser.js
index 8b570d1..4622f24 100644
--- a/selling/page/sales_browser/sales_browser.js
+++ b/selling/page/sales_browser/sales_browser.js
@@ -16,7 +16,8 @@
 
 pscript['onload_Sales Browser'] = function(wrapper){
 	wrapper.appframe = new wn.ui.AppFrame($(wrapper).find('.appframe-area'));
-	wrapper.appframe.add_module_tab("Selling");
+	wrapper.appframe.add_home_breadcrumb()
+	wrapper.appframe.add_module_breadcrumb("Selling")
 	
 	wrapper.appframe.add_button('Refresh', function() {  
 			wrapper.make_tree();
diff --git a/stock/page/stock_ageing/stock_ageing.js b/stock/page/stock_ageing/stock_ageing.js
index 82ab0bc..c20fa92 100644
--- a/stock/page/stock_ageing/stock_ageing.js
+++ b/stock/page/stock_ageing/stock_ageing.js
@@ -24,7 +24,9 @@
 
 	new erpnext.StockAgeing(wrapper);
 	
-	wrapper.appframe.add_module_tab("Stock");
+	wrapper.appframe.add_home_breadcrumb()
+	wrapper.appframe.add_module_breadcrumb("Stock")
+	wrapper.appframe.add_breadcrumb("icon-bar-chart")
 }
 
 wn.require("app/js/stock_grid_report.js");
diff --git a/stock/page/stock_analytics/stock_analytics.js b/stock/page/stock_analytics/stock_analytics.js
index 8e98de8..3448035 100644
--- a/stock/page/stock_analytics/stock_analytics.js
+++ b/stock/page/stock_analytics/stock_analytics.js
@@ -23,7 +23,9 @@
 	
 	new erpnext.StockAnalytics(wrapper);
 	
-	wrapper.appframe.add_module_tab("Stock");
+	wrapper.appframe.add_home_breadcrumb()
+	wrapper.appframe.add_module_breadcrumb("Stock")
+	wrapper.appframe.add_breadcrumb("icon-bar-chart")
 }
 
 wn.require("app/js/stock_grid_report.js");
diff --git a/stock/page/stock_ledger/stock_ledger.js b/stock/page/stock_ledger/stock_ledger.js
index f7427ab..3287bb0 100644
--- a/stock/page/stock_ledger/stock_ledger.js
+++ b/stock/page/stock_ledger/stock_ledger.js
@@ -23,7 +23,9 @@
 	
 	new erpnext.StockLedger(wrapper);
 	
-	wrapper.appframe.add_module_tab("Stock");
+	wrapper.appframe.add_home_breadcrumb()
+	wrapper.appframe.add_module_breadcrumb("Stock")
+	wrapper.appframe.add_breadcrumb("icon-bar-chart")
 }
 
 wn.require("app/js/stock_grid_report.js");
diff --git a/website/css/website.css b/website/css/website.css
index 86f0414..112d29c 100644
--- a/website/css/website.css
+++ b/website/css/website.css
@@ -6,7 +6,9 @@
 	padding: 0px;
 	min-height: 400px;
 	margin: 40px auto;
-	box-shadow: 1px 1px 3px 3px #ccc;
+	box-shadow: 1px 1px 3px 3px #bbb;
+	border-radius: 5px;
+	overflow: hidden;
 }
 
 .navbar-inner {
@@ -23,6 +25,7 @@
 	box-shadow: none;
 	-webkit-box-shadow: none;
 	-moz-box-shadow: none;
+	border-radius: 0px 0px 5px 5px;
 }
 
 .layout-main {
diff --git a/website/templates/css/login.css b/website/templates/css/login.css
index 3d64009..710f889 100644
--- a/website/templates/css/login.css
+++ b/website/templates/css/login.css
@@ -10,6 +10,7 @@
 			box-shadow: 1px 1px 3px 3px #ccc;
 			font-size: 12px;
 			min-height: 100px;
+			border-radius: 5px;
 		}
 
 		#login_wrapper h3 {
diff --git a/website/utils.py b/website/utils.py
index 079ad21..bac87ff 100644
--- a/website/utils.py
+++ b/website/utils.py
@@ -210,7 +210,7 @@
 			from `tabWebsite Product Category` t1, `tabItem Group` t2 
 			where t1.item_group = t2.name
 			and ifnull(t2.show_in_website,0)=1 order by t1.idx""", as_dict=1)
-		products_item = filter(lambda d: d.url.split(".")[0]=="products", top_items)[0]			
+		products_item = filter(lambda d: d.url and d.url.split(".")[0]=="products", top_items)[0]			
 		products_item.child_items = products
 		
 	return {
