diff --git a/erpnext/startup/event_handlers.py b/erpnext/startup/event_handlers.py
index c58d378..a67a214 100644
--- a/erpnext/startup/event_handlers.py
+++ b/erpnext/startup/event_handlers.py
@@ -60,9 +60,9 @@
 	import webnotes.model.doc
 	
 	bootinfo['custom_css'] = webnotes.conn.get_value('Style Settings', None, 'custom_css') or ''
+	bootinfo['website_settings'] = webnotes.model.doc.getsingle('Website Settings')
 
 	if webnotes.session['user']=='Guest':
-		bootinfo['website_settings'] = webnotes.model.doc.getsingle('Website Settings')
 		bootinfo['website_menus'] = webnotes.conn.sql("""select label, url, custom_page, 
 			parent_label, parentfield
 			from `tabTop Bar Item` where parent='Website Settings' order by idx asc""", as_dict=1)
diff --git a/erpnext/startup/startup.js b/erpnext/startup/startup.js
index 5dfd692..9ca3adc 100644
--- a/erpnext/startup/startup.js
+++ b/erpnext/startup/startup.js
@@ -215,3 +215,12 @@
 		}
 	});
 }
+
+erpnext.hide_naming_series = function() {
+	if(cur_frm.fields_dict.naming_series) {
+		hide_field('naming_series');
+		if(cur_frm.doc.__islocal) {
+			unhide_field('naming_series');
+		}
+	}
+}
diff --git a/js/all-app.js b/js/all-app.js
index 40608e7..1d0ac85 100644
--- a/js/all-app.js
+++ b/js/all-app.js
@@ -2219,7 +2219,7 @@
  *	js/app.js
  */
 wn.provide('erpnext');erpnext.set_about=function(){wn.provide('wn.app');$.extend(wn.app,{name:'ERPNext',license:'GNU/GPL - Usage Condition: All "erpnext" branding must be kept as it is',source:'https://github.com/webnotes/erpnext',publisher:'Web Notes Technologies Pvt Ltd, Mumbai',copyright:'&copy; Web Notes Technologies Pvt Ltd',version:'2'});}
-wn.modules_path='erpnext';$(document).bind('toolbar_setup',function(){$('.brand').html($wn.boot.website_settings.brand_html.substr(0,15)||'erpnext'+' <i class="icon-home icon-white navbar-icon-home" ></i>').hover(function(){$(this).find('.icon-home').addClass('navbar-icon-home-hover');},function(){$(this).find('.icon-home').removeClass('navbar-icon-home-hover');});});
+wn.modules_path='erpnext';$(document).bind('toolbar_setup',function(){$('.brand').html(wn.boot.website_settings.brand_html.substr(0,15)||'erpnext'+' <i class="icon-home icon-white navbar-icon-home" ></i>').hover(function(){$(this).find('.icon-home').addClass('navbar-icon-home-hover');},function(){$(this).find('.icon-home').removeClass('navbar-icon-home-hover');});});
 /*
  *	erpnext/startup/startup.js
  */
@@ -2253,6 +2253,7 @@
 $(document).bind('startup',function(){erpnext.startup.start();});erpnext.send_message=function(opts){if(opts.btn){$(opts.btn).start_working();}
 wn.call({method:'website.send_message',args:opts,callback:function(r){if(opts.btn){$(opts.btn).done_working();}
 if(opts.callback)opts.callback(r)}});}
+erpnext.hide_naming_series=function(){if(cur_frm.fields_dict.naming_series){hide_field('naming_series');if(cur_frm.doc.__islocal){unhide_field('naming_series');}}}
 /*
  *	erpnext/startup/js/modules.js
  */
diff --git a/js/all-web.js b/js/all-web.js
index f271a36..016d1a7 100644
--- a/js/all-web.js
+++ b/js/all-web.js
@@ -830,7 +830,7 @@
  *	js/app.js
  */
 wn.provide('erpnext');erpnext.set_about=function(){wn.provide('wn.app');$.extend(wn.app,{name:'ERPNext',license:'GNU/GPL - Usage Condition: All "erpnext" branding must be kept as it is',source:'https://github.com/webnotes/erpnext',publisher:'Web Notes Technologies Pvt Ltd, Mumbai',copyright:'&copy; Web Notes Technologies Pvt Ltd',version:'2'});}
-wn.modules_path='erpnext';$(document).bind('toolbar_setup',function(){$('.brand').html($wn.boot.website_settings.brand_html.substr(0,15)||'erpnext'+' <i class="icon-home icon-white navbar-icon-home" ></i>').hover(function(){$(this).find('.icon-home').addClass('navbar-icon-home-hover');},function(){$(this).find('.icon-home').removeClass('navbar-icon-home-hover');});});
+wn.modules_path='erpnext';$(document).bind('toolbar_setup',function(){$('.brand').html(wn.boot.website_settings.brand_html.substr(0,15)||'erpnext'+' <i class="icon-home icon-white navbar-icon-home" ></i>').hover(function(){$(this).find('.icon-home').addClass('navbar-icon-home-hover');},function(){$(this).find('.icon-home').removeClass('navbar-icon-home-hover');});});
 /*
  *	erpnext/startup/startup.js
  */
@@ -864,6 +864,7 @@
 $(document).bind('startup',function(){erpnext.startup.start();});erpnext.send_message=function(opts){if(opts.btn){$(opts.btn).start_working();}
 wn.call({method:'website.send_message',args:opts,callback:function(r){if(opts.btn){$(opts.btn).done_working();}
 if(opts.callback)opts.callback(r)}});}
+erpnext.hide_naming_series=function(){if(cur_frm.fields_dict.naming_series){hide_field('naming_series');if(cur_frm.doc.__islocal){unhide_field('naming_series');}}}
 /*
  *	erpnext/website/js/topbar.js
  */
diff --git a/js/app.js b/js/app.js
index e994ccf..fcacec2 100644
--- a/js/app.js
+++ b/js/app.js
@@ -14,7 +14,7 @@
 wn.modules_path = 'erpnext';
 
 $(document).bind('toolbar_setup', function() {
-	$('.brand').html($wn.boot.website_settings.brand_html.substr(0,15) || 'erpnext' +
+	$('.brand').html(wn.boot.website_settings.brand_html.substr(0,15) || 'erpnext' +
 	' <i class="icon-home icon-white navbar-icon-home" ></i>')
 	.hover(function() {
 		$(this).find('.icon-home').addClass('navbar-icon-home-hover');
