diff --git a/web/root/index.ssjs b/web/root/index.ssjs
index 1c6b4776a4772aaa5c1c3049115eff06066a55c1..0e673169a889c2053af588bf73ce3a58af93f6d6 100644
--- a/web/root/index.ssjs
+++ b/web/root/index.ssjs
@@ -9,7 +9,7 @@ load("nodedefs.js");
 var include_statistics=true;
 
 write_template("header.inc");
-write_template("topnav.inc");
+load("../web/lib/topnav_html.ssjs");
 write_template("leftnav.inc");
 write_template("main.inc");
 
diff --git a/web/root/logout.ssjs b/web/root/logout.ssjs
new file mode 100644
index 0000000000000000000000000000000000000000..61973aefc9e77e67960f116e99739c0f6b38ef1c
--- /dev/null
+++ b/web/root/logout.ssjs
@@ -0,0 +1,9 @@
+if(user.number!=0) {
+	http_reply.status='401 Premission Denied';
+}
+write('<html><head>');
+write('<meta http-equiv="Pragma" content="no-cache">');
+write('<meta http-equiv="expires" content="0">');
+write('<meta http-equiv="refresh" content="0; URL=../index.ssjs">');
+write('</head></html>');
+
diff --git a/web/root/members/info.ssjs b/web/root/members/info.ssjs
index 9eac334919ee57b54976305cf8855109e3a997da..5a091a5a1a05c5f9fa4e56a537410440757386cb 100644
--- a/web/root/members/info.ssjs
+++ b/web/root/members/info.ssjs
@@ -4,7 +4,7 @@ var sub="";
 
 template.title=system.name+ " Information Menu";
 write_template("header.inc");
-write_template("topnav.inc");
+load("../web/lib/topnav_html.ssjs");
 write_template("leftnav.inc");
 write_template("infomenu.inc");
 write_template("footer.inc");
diff --git a/web/root/members/sysinfo.ssjs b/web/root/members/sysinfo.ssjs
index 00dcfaa759ac7287dd45ff7d0f1bdc9a08c1d2ca..6bbec2c7181c45c97a6c0406ca92feaccc660b70 100644
--- a/web/root/members/sysinfo.ssjs
+++ b/web/root/members/sysinfo.ssjs
@@ -107,7 +107,7 @@ for(addr in system.fido_addr_list) {
 }
 
 write_template("header.inc");
-write_template("topnav.inc");
+load("../web/lib/topnav_html.ssjs");
 write_template("leftnav.inc");
 write_template("sysinfo.inc");
 write_template("footer.inc");
diff --git a/web/root/members/themes.ssjs b/web/root/members/themes.ssjs
index 44195aa4071ed1d832ad43fcdac8f32f53a5760a..cc350efd6dcd41219312eeb2d190e58528477782 100644
--- a/web/root/members/themes.ssjs
+++ b/web/root/members/themes.ssjs
@@ -11,7 +11,7 @@ for(tname in Themes) {
 }
 template.theme_list+='</select>';
 write_template("header.inc");
-write_template("topnav.inc");
+load("../web/lib/topnav_html.ssjs");
 write_template("leftnav.inc");
 write_template("themes.inc");
 write_template("footer.inc");
diff --git a/web/root/members/userlist.ssjs b/web/root/members/userlist.ssjs
index 982ba7b8b9c94494406365008194162fc58ecd8e..647b2af0ff6e6e2e7834750f07ba65439075533a 100644
--- a/web/root/members/userlist.ssjs
+++ b/web/root/members/userlist.ssjs
@@ -4,6 +4,7 @@
 
 // $Id$
 
+http_reply.fast=true;
 load("sbbsdefs.js");
 load("../web/lib/template.ssjs");
 
@@ -32,7 +33,7 @@ for(i=1;i<=lastuser;i++) {
 template.users.sort(alphasort);
 
 write_template("header.inc");
-write_template("topnav.inc");
+load("../web/lib/topnav_html.ssjs");
 write_template("leftnav.inc");
 write_template("userlist.inc");
 write_template("footer.inc");
diff --git a/web/root/members/userstats.ssjs b/web/root/members/userstats.ssjs
index 90267413c626c0a86b1f454502044bf9d99ff562..fb177fd19ad0434111700c757bbc9ceca428b72c 100644
--- a/web/root/members/userstats.ssjs
+++ b/web/root/members/userstats.ssjs
@@ -21,7 +21,7 @@ i=i ? 100/i : user.stats.total_posts > user.stats.total_logons ? 100 : 0;
 template.pinfo=parseInt(i);
 
 write_template("header.inc");
-write_template("topnav.inc");
+load("../web/lib/topnav_html.ssjs");
 write_template("leftnav.inc");
 write_template("userstats.inc");
 write_template("footer.inc");
diff --git a/web/root/msgs/index.ssjs b/web/root/msgs/index.ssjs
index b535f207fc1363ad69253a74ba692933c49ebb86..354c748d2487aaff8cbef0efc140ccd7132b31bc 100644
--- a/web/root/msgs/index.ssjs
+++ b/web/root/msgs/index.ssjs
@@ -2,7 +2,7 @@ load("../web/lib/msgslib.ssjs");
 
 template.title="Message Groups on " +system.name;
 write_template("header.inc");
-write_template("topnav.inc");
+load("../web/lib/topnav_html.ssjs");
 write_template("leftnav.inc");
 template.groups=msg_area.grp_list;
 write_template("msgs/groups.inc");
diff --git a/web/root/msgs/management.ssjs b/web/root/msgs/management.ssjs
index 5fc4886968cb9b19720567ecf0ffb35d3654a78b..7c6036670de57c3c64a975de65094ccc5b4f2af7 100644
--- a/web/root/msgs/management.ssjs
+++ b/web/root/msgs/management.ssjs
@@ -58,7 +58,7 @@ if(http_request.query.Action=="Delete Selected Message(s)") {
 template.backurl=http_request.header.referer;
 
 write_template("header.inc");
-write_template("topnav.inc");
+load("../web/lib/topnav_html.ssjs");
 write_template("leftnav.inc");
 write_template("msgs/management.inc");
 write_template("footer.inc");
diff --git a/web/root/msgs/msg.ssjs b/web/root/msgs/msg.ssjs
index f407c0a046651c0731a5aca1d4ddd53fc7070d3c..23930b62563e9b0eca699627ef790050f94f6841 100644
--- a/web/root/msgs/msg.ssjs
+++ b/web/root/msgs/msg.ssjs
@@ -118,7 +118,7 @@ else
     template.prevlink=prev_msg_html;
 
 write_template("header.inc");
-write_template("topnav.inc");
+load("../web/lib/topnav_html.ssjs");
 write_template("leftnav.inc");
 write_template("msgs/msg.inc");
 write_template("footer.inc");
diff --git a/web/root/msgs/msgs.ssjs b/web/root/msgs/msgs.ssjs
index 6bd02c26e5af615c66bbc1b84e36a4c39c7eecdc..31c302d6d38ad27ff7d870e4f6decd5845b404cc 100644
--- a/web/root/msgs/msgs.ssjs
+++ b/web/root/msgs/msgs.ssjs
@@ -186,7 +186,7 @@ if(sub=='mail') {
 	template.post_button="Create New Message";
 }				
 
-write_template("topnav.inc");
+load("../web/lib/topnav_html.ssjs");
 write_template("leftnav.inc");
 write_template("msgs/msgs.inc");
 write_template("footer.inc");
diff --git a/web/root/msgs/post.ssjs b/web/root/msgs/post.ssjs
index 3b05307c520b66e8da02ba764f5077293e428041..b0e66842c5447cc75d994009d5169da84c4a407f 100644
--- a/web/root/msgs/post.ssjs
+++ b/web/root/msgs/post.ssjs
@@ -43,7 +43,7 @@ if(sub!='mail') {
 }
 template.title="Post a message in " + template.sub.description;
 write_template("header.inc");
-write_template("topnav.inc");
+load("../web/lib/topnav_html.ssjs");
 write_template("leftnav.inc");
 write_template("msgs/post.inc");
 write_template("footer.inc");
diff --git a/web/root/msgs/reply.ssjs b/web/root/msgs/reply.ssjs
index 697c3395ddf56938dfd567264eb5cd69bb240883..c30c232abdb18aa8a9bed336100dfa0de74561cd 100644
--- a/web/root/msgs/reply.ssjs
+++ b/web/root/msgs/reply.ssjs
@@ -65,7 +65,7 @@ else  {
 }
 title="Reply to message";
 write_template("header.inc");
-write_template("topnav.inc");
+load("../web/lib/topnav_html.ssjs");
 write_template("leftnav.inc");
 write_template("msgs/reply.inc");
 write_template("footer.inc");
diff --git a/web/root/msgs/savemsg.ssjs b/web/root/msgs/savemsg.ssjs
index 0f2893bd03ba1af73847d19f311c92e8d4355af6..91d1051b41aef5b5b15c8b21de3d96f3327057f2 100644
--- a/web/root/msgs/savemsg.ssjs
+++ b/web/root/msgs/savemsg.ssjs
@@ -103,7 +103,7 @@ if(hdrs.thread_orig!=undefined)  {
 http_reply.status="201 Created";
 title="Message posted";
 write_template("header.inc");
-write_template("topnav.inc");
+load("../web/lib/topnav_html.ssjs");
 write_template("leftnav.inc");
 write_template("msgs/posted.inc");
 write_template("footer.inc");
diff --git a/web/root/msgs/subinfo.ssjs b/web/root/msgs/subinfo.ssjs
index 8499c89731647a508dc413f33da3878491698c6b..4692bd8ecdbae135e8c4c70fc55ef4dc419cfdb2 100644
--- a/web/root/msgs/subinfo.ssjs
+++ b/web/root/msgs/subinfo.ssjs
@@ -39,7 +39,7 @@ else {
 template.backurl=http_request.header.referer;
 
 write_template("header.inc");
-write_template("topnav.inc");
+load("../web/lib/topnav_html.ssjs");
 write_template("leftnav.inc");
 write_template("msgs/subinfo.inc");
 write_template("footer.inc");
diff --git a/web/root/msgs/subs.ssjs b/web/root/msgs/subs.ssjs
index 39aedd82675bef8a7f0a56f6af2b2935c7f9345d..c224c69d59841533e0b0666cc2e0081b9c8ec284 100644
--- a/web/root/msgs/subs.ssjs
+++ b/web/root/msgs/subs.ssjs
@@ -56,7 +56,7 @@ for(s in msg_area.grp[grp].sub_list) {
 	template.subs.push(thissub);
 }
 
-write_template("topnav.inc");
+load("../web/lib/topnav_html.ssjs");
 write_template("leftnav.inc");
 write_template("msgs/subs.inc");
 write_template("footer.inc");