diff --git a/js/all-app.js b/js/all-app.js
index c937d70..c49e923 100644
--- a/js/all-app.js
+++ b/js/all-app.js
Binary files differ
diff --git a/js/all-web.js b/js/all-web.js
index eb754b7..6299c55 100644
--- a/js/all-web.js
+++ b/js/all-web.js
@@ -169,17 +169,8 @@
  */
 if(!console){var console={log:function(txt){errprint(txt);}}}
 wn.check_browser_support=function(){var is_supported=function(){if($.browser.mozilla&&flt($.browser.version)<4)return false;if($.browser.msie&&flt($.browser.version)<9)return false;if($.browser.webkit&&flt($.browser.version)<534)return false;return true;}
-if(!is_supported()){$('body').html('<div style="width: 900px; margin: 20px auto; padding: 20px;\
-   background-color: #fff; border: 2px solid #aaa; font-family: Arial">\
-   <h3>Unsupported Browser</h3> \
-   <p><i>ERPNext requires a modern web browser to function correctly</i></p> \
-   <p>Supported browsers are: \
-   <ul><li><a href="http://mozilla.com/firefox">Mozilla Firfox 4+</a>, \
-   <li><a href="http://google.com/chrome">Google Chorme 14+</a>, \
-   <li><a href="http://apple.com/safari">Apple Safari 5+</a>, \
-   <li><a href="http://ie.microsoft.com">Microsoft Internet Explorer 9+</a>, \
-   <li><a href="http://www.opera.com/">Opera</a></p></ul>');}}
-wn.versions.check();$(document).bind('ready',function(){var base=window.location.href.split('#')[0];$.each($('a[softlink!="false"]'),function(i,v){if(v.href.substr(0,base.length)==base){var path=(v.href.substr(base.length));if(path.substr(0,1)!='#'){v.href=base+'#'+path;}}});if(!wn.settings.no_history&&window.location.hash){wn.page.set(window.location.hash.substr(1));}});
+if(!is_supported()){window.location.href='unsupported.html';}}
+wn.check_browser_support();wn.versions.check();$(document).bind('ready',function(){var base=window.location.href.split('#')[0];$.each($('a[softlink!="false"]'),function(i,v){if(v.href.substr(0,base.length)==base){var path=(v.href.substr(base.length));if(path.substr(0,1)!='#'){v.href=base+'#'+path;}}});if(!wn.settings.no_history&&window.location.hash){wn.page.set(window.location.hash.substr(1));}});
 /*
  *	lib/js/legacy/globals.js
  */
diff --git a/version.num b/version.num
index 5be040f..773855c 100644
--- a/version.num
+++ b/version.num
@@ -1 +1 @@
-808
\ No newline at end of file
+810
\ No newline at end of file
