diff --git a/web/templates/error.inc b/web/templates/error.inc
index 1007a315ad58f34c176d9e0b5c770f501bbbbf3e..dedb26df3d4923c214a3b40aa51551da1512cf09 100644
--- a/web/templates/error.inc
+++ b/web/templates/error.inc
@@ -1,2 +1,2 @@
-<H2>ERROR!</H2>
-<H3>%%err%%</H3>
+<h2>ERROR!</h2>
+<h3>%%err%%</h3>
diff --git a/web/templates/footer.inc b/web/templates/footer.inc
index 354a468471854092286dfe651f86b9ef31c8ce17..da9bbcc297787326253f603dfed338f63f0c7d16 100644
--- a/web/templates/footer.inc
+++ b/web/templates/footer.inc
@@ -1,17 +1,17 @@
 <!-- $Id$ -->
-<br>
+<br />
 <table width="100%" cellspacing="0" border="0" cellpadding="0" align="center">
   <tbody>
     <tr>
       <td>
       <div align="left">
-            <a href="http://www.synchro.net/"><img src="/graphics/sync_pb.gif" alt="Powered by: Synchronet" width="259" height="32" border="0"></a></div>
+            <a href="http://www.synchro.net/"><img src="/graphics/sync_pb.gif" alt="Powered by: Synchronet" width="259" height="32" border="0" /></a></div>
       </td>
       <td>
       <div align="right">
-      <a href="http://validator.w3.org/check?uri=referer"><img border="0"
-          src="http://www.w3.org/Icons/valid-html401"
-          alt="Valid HTML 4.01!" height="31" width="88"></a><br>
+      <a href="http://validator.w3.org/check?uri=referer"><img
+          src="http://www.w3.org/Icons/valid-xhtml10"
+          alt="Valid XHTML 1.0!" height="31" width="88" border="0" /></a><br />
       </div>
       </td>
     </tr>
diff --git a/web/templates/header.inc b/web/templates/header.inc
index fc05e4272e85e340b9eebae3adaa7e17d42660c6..417e643df2a563295ea2db602a02e95e47c16d12 100644
--- a/web/templates/header.inc
+++ b/web/templates/header.inc
@@ -1,10 +1,11 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html>
     <!-- $Id$ -->
     <head>
         <title>%%title%%</title>
-            <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-            <link rel="stylesheet" href="/synchronet.css" type="text/css">
+            <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+            <link rel="stylesheet" href="/synchronet.css" type="text/css" />
     </head>
 <body>
-    <div align="center"><h3>%%JS:system.name%%</h3></div>
+
+
diff --git a/web/templates/infomenu.inc b/web/templates/infomenu.inc
index 33a00b918e8692f1c4666c4ffa4ddbe8400153cb..f476202f70dbf3880d60d54de2845dd9dab5ec4d 100644
--- a/web/templates/infomenu.inc
+++ b/web/templates/infomenu.inc
@@ -1,4 +1,4 @@
 <p class="navigation"><a class="navigation" href="http://^^JS:system.inet_addr^^/">Home</a> : <a class="navigation" href="/members/">Members</a> : Information</p>
 <p>Information Menu:</p>
-<a href="userstats.ssjs">View your statistics</a><br>
-<a href="sysinfo.ssjs">System information</a><br>
+<a href="userstats.ssjs">View your statistics</a><br />
+<a href="sysinfo.ssjs">System information</a><br />
diff --git a/web/templates/msgs/msg.inc b/web/templates/msgs/msg.inc
index 73f876aa32636279a3d98c0d4ae0c86eb3e08524..70a558fa1ac9395fc6040b71fd35387de997ce9a 100644
--- a/web/templates/msgs/msg.inc
+++ b/web/templates/msgs/msg.inc
@@ -1,32 +1,32 @@
 <p class="navigation"><a class="navigation" href="http://^^JS:system.inet_addr^^">Home</a> : <a class="navigation" href="/members/">Members</a> : <a class="navigation" href="index.ssjs">Groups</a> : <a class="navigation" href="subs.ssjs?msg_grp=^^group:number^^">%%group:description%%</a> :
 <a class="navigation" href="msgs.ssjs?msg_grp=^^group:number^^&amp;msg_sub=^^sub:code^^">%%sub:description%%</a>
-<a class="navigation" href="subinfo.ssjs?msg_grp=^^group:number^^&amp;msg_sub=^^sub:code^^">[?]</a><br></p>
+<a class="navigation" href="subinfo.ssjs?msg_grp=^^group:number^^&amp;msg_sub=^^sub:code^^">[?]</a><br /></p>
 <table class="msg" border="0" width="95%">
 <tr>
-    <td class="msgheader" nowrap>Subject:</td>
-    <td nowrap>%%hdr:subject%%</td>
-    <td class="msgheader" nowrap>To:</td>
-    <td nowrap>%%hdr:to%%</td>
+    <td class="msgheader" nowrap="nowrap">Subject:</td>
+    <td nowrap="nowrap">%%hdr:subject%%</td>
+    <td class="msgheader" nowrap="nowrap">To:</td>
+    <td nowrap="nowrap">%%hdr:to%%</td>
 </tr>
 <tr>
-    <td class="msgheader" nowrap>From:</td>
-    <td nowrap>%%hdr:from%%</td>
-    <td class="msgheader" nowrap>Date:</td>
-    <td nowrap>%%JS:system.timestr(@@hdr:when_written_time@@)%%</td>
+    <td class="msgheader" nowrap="nowrap">From:</td>
+    <td nowrap="nowrap">%%hdr:from%%</td>
+    <td class="msgheader" nowrap="nowrap">Date:</td>
+    <td nowrap="nowrap">%%JS:system.timestr(@@hdr:when_written_time@@)%%</td>
 </tr>
-<tr><td colspan="4"><hr></td></tr>
+<tr><td colspan="4"><hr /></td></tr>
 <tr>
     <td colspan="4">
-        <object class="msg" type="text/html" border=2 data="msgframe.ssjs/^^group:number^^/^^sub:code^^/^^hdr:number^^" standby="Loading Message ..." width="100%" height="450">
+        <object class="msg" type="text/html" border="2" data="msgframe.ssjs/^^group:number^^/^^sub:code^^/^^hdr:number^^" standby="Loading Message ..." width="100%" height="450">
             <pre class="leftalign">@@body@@</pre>
         </object>
     </td>
 </tr>
 </table>
 @@JS:if(template.attachments==undefined) '<!--'; else '';@@
-<b>Attachments:</b><br>
+<b>Attachments:</b><br />
 <<REPEAT attachments>>
-<a href="attachments.ssjs/^^group:number^^/^^sub:code^^/^^hdr:number^^/^^attachments:name^^">%%attachments:name%%</a><br>
+<a href="attachments.ssjs/^^group:number^^/^^sub:code^^/^^hdr:number^^/^^attachments:name^^">%%attachments:name%%</a><br />
 <<END REPEAT attachments>>
 @@JS:if(template.attachments==undefined) '-->'; else '';@@
 <p class="msgcenter"><a href="reply.ssjs?msg_grp=^^group:number^^&amp;msg_sub=^^sub:code^^&amp;reply_to=^^hdr:number^^">Reply</a></p>
diff --git a/web/templates/msgs/msgs.inc b/web/templates/msgs/msgs.inc
index cc6191fbee0a9203d54822fa08fb92f56ae83a52..bf4725ec5269c8eaa3f138acabfd3c50ca9da2e2 100644
--- a/web/templates/msgs/msgs.inc
+++ b/web/templates/msgs/msgs.inc
@@ -17,7 +17,7 @@
 		  <input name="offset" value="%%messages:offset%%" type="checkbox" />
 	   </td>
 	   <td class="msglist">
-    		@@JS:if(@@messages:attachments@@>0) '<img alt="Attachment" src="/graphics/attach.gif">'; else '&nbsp;';@@
+    		@@JS:if(@@messages:attachments@@>0) '<img alt="Attachment" src="/graphics/attach.gif" />'; else '&nbsp;';@@
 	   </td>
 	   <td class="msglist">
 		  <a class="msglist" href="msg.ssjs?msg_grp=^^group:number^^&amp;msg_sub=^^sub:code^^&amp;message=^^messages:number^^">%%messages:subject%%</a>
@@ -28,15 +28,15 @@
 	   <td class="msglist">
 		  %%messages:to%%
 	   </td>
-	   <td class="msglist" nowrap>
+	   <td class="msglist" nowrap="nowrap">
 		  %%JS:system.timestr(@@messages:when_written_time@@)%%
 	   </td>
     </tr>
     <<END REPEAT messages>>
     </table>
-    <br>
-    <div align="center"><input class="msg" type="submit" name="Delete" value="Delete Message(s)"></div>
+    <br />
+    <div align="center"><input class="msg" type="submit" name="Delete" value="Delete Message(s)" /></div>
 </form>
 <div align="center">@@pagelinks@@</div>
-<br>
+<br />
 
diff --git a/web/templates/msgs/post.inc b/web/templates/msgs/post.inc
index e9fca357f6053533b1302514d072f24bdfb92fc8..602d6c4aa2a15303929ef6fbc1c486cee46e201a 100644
--- a/web/templates/msgs/post.inc
+++ b/web/templates/msgs/post.inc
@@ -1,11 +1,11 @@
 <form action="savemsg.ssjs" method="post">
 <table class="postmsg" border="0" cellspacing="2" cellpadding="0">
-<input type="hidden" name="msg_grp" value="%%group:number%%">
-<input type="hidden" name="msg_sub" value="%%sub:code%%">
+<input type="hidden" name="msg_grp" value="%%group:number%%" />
+<input type="hidden" name="msg_sub" value="%%sub:code%%" />
   <tbody>
     <tr>
-      <td class="postmsg">Subject: <input class="postmsg" type="text" name="subject" value=""></td>
-      <td class="postmsg">To: <input class="postmsg" type="text" name="to" value="All"></td>
+      <td class="postmsg">Subject: <input class="postmsg" type="text" name="subject" value="" /></td>
+      <td class="postmsg">To: <input class="postmsg" type="text" name="to" value="All" /></td>
     </tr>
     <tr>
       <td class="postmsg" colspan="2"><textarea class="postmsg" name=body rows="20" cols="80"></textarea></td>
diff --git a/web/templates/msgs/reply.inc b/web/templates/msgs/reply.inc
index b6638be144532142b36f498f3bdeb34c9bafe561..ad4509cba330c3171600b2d747a00f19c3bc7bd4 100644
--- a/web/templates/msgs/reply.inc
+++ b/web/templates/msgs/reply.inc
@@ -1,11 +1,11 @@
 <form action="savemsg.ssjs" method="post">
 <table class="replymsg" border="0" cellspacing="2" cellpadding="0">
-<input type="hidden" name="msg_grp" value="%%group:number%%">
-<input type="hidden" name="msg_sub" value="%%sub:code%%">
+<input type="hidden" name="msg_grp" value="%%group:number%%" />
+<input type="hidden" name="msg_sub" value="%%sub:code%%" />
   <tbody>
     <tr>
-      <td class="replymsg">Subject: <input class="replymsg" type="text" name="subject" value="%%subject%%"></td>
-      <td class="replymsg">To: <input class="replymsg" type="text" name="to" value="%%from%%"></td>
+      <td class="replymsg">Subject: <input class="replymsg" type="text" name="subject" value="%%subject%%" /></td>
+      <td class="replymsg">To: <input class="replymsg" type="text" name="to" value="%%from%%" /></td>
     </tr>
     <tr>
       <td class="replymsg" colspan="2"><textarea class="replymsg" name=body rows="20" cols="80">%%body%%</textarea></td>
diff --git a/web/templates/msgs/textmsg.inc b/web/templates/msgs/textmsg.inc
index b5380c30e9abb517f84e375cc4dbad4dfd08e18a..62b008ad7e4db72b854903a0f2b7d19b45f682a8 100644
--- a/web/templates/msgs/textmsg.inc
+++ b/web/templates/msgs/textmsg.inc
@@ -1,9 +1,9 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html>
 <head>
 <title>%%title%%</title>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<link rel="stylesheet" href="/synchronet.css" type="text/css">
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<link rel="stylesheet" href="/synchronet.css" type="text/css" />
 </head>
 <body class="msg">
 <pre>@@body@@</pre>
diff --git a/web/templates/newuser.inc b/web/templates/newuser.inc
index 8060f80e72babc9b29ddef25580d732fbe201f80..49477c3782f519ebe4396b46d8d7dce6df8d5de3 100644
--- a/web/templates/newuser.inc
+++ b/web/templates/newuser.inc
@@ -5,39 +5,39 @@
 		<table class="newuser" cellpadding="0" cellspacing="2">
 			<tr>
 				<td class="newuser" align="right">%%errs:alias%% Alias:</td>
-				<td class="newuser" align="left"><input type="text" name="alias" size="25" maxlength="25" value="%%posted:alias%%"></td>
+				<td class="newuser" align="left"><input type="text" name="alias" size="25" maxlength="25" value="%%posted:alias%%" /></td>
 			</tr>
 			<tr>
 				<td class="newuser" align="right">%%errs:name%% Real Name:</td>
-				<td class="newuser" align="left"><input type="text" name="name" size="25" maxlength="25" value="%%posted:name%%"></td>
+				<td class="newuser" align="left"><input type="text" name="name" size="25" maxlength="25" value="%%posted:name%%" /></td>
 			</tr>
 			<tr>
 				<td class="newuser" align="right">%%errs:handle%% Chat Handle:</td>
-				<td class="newuser" align="left"><input type="text" name="handle" size="8" maxlength="8" value="%%posted:handle%%"></td>
+				<td class="newuser" align="left"><input type="text" name="handle" size="8" maxlength="8" value="%%posted:handle%%" /></td>
 			</tr>
 			<tr>
 				<td class="newuser" align="right">%%errs:netmail%% E-Mail Address:</td>
-				<td class="newuser" align="left"><input type="text" name="netmail" size="60" maxlength="60" value="%%posted:netmail%%"></td>
+				<td class="newuser" align="left"><input type="text" name="netmail" size="60" maxlength="60" value="%%posted:netmail%%" /></td>
 			</tr>
 			<tr>
 				<td class="newuser" align="right">%%errs:address%% Mailing Address:</td>
-				<td class="newuser" align="left"><input type="text" name="address" size="30" maxlength="30" value="%%posted:address%%"></td>
+				<td class="newuser" align="left"><input type="text" name="address" size="30" maxlength="30" value="%%posted:address%%" /></td>
 			</tr>
 			<tr>
 				<td class="newuser" align="right">%%errs:location%% City and Province/State:</td>
-				<td class="newuser" align="left"><input type="text" name="location" size="30" maxlength="30" value="%%posted:location%%"></td>
+				<td class="newuser" align="left"><input type="text" name="location" size="30" maxlength="30" value="%%posted:location%%" /></td>
 			</tr>
 			<tr>
 				<td class="newuser" align="right">%%errs:zipcode%% Postal/Zip Code:</td>
-				<td class="newuser" align="left"><input type="text" name="zipcode" size="10" maxlength="10" value="%%posted:zipcode%%"></td>
+				<td class="newuser" align="left"><input type="text" name="zipcode" size="10" maxlength="10" value="%%posted:zipcode%%" /></td>
 			</tr>
 			<tr>
 				<td class="newuser" align="right">%%errs:phone%% Phone Number (###-###-####):</td>
-				<td class="newuser" align="left"><input type="text" name="phone" size="12" maxlength="12" value="%%posted:phone%%"></td>
+				<td class="newuser" align="left"><input type="text" name="phone" size="12" maxlength="12" value="%%posted:phone%%" /></td>
 			</tr>
 			<tr>
 				<td class="newuser" align="right">%%errs:birthdate%% Birthdate (MM/DD/YY):</td>
-				<td class="newuser" align="left"><input type="text" name="birthdate" size="8" maxlength="8" value="%%posted:birthdate%%"></td>
+				<td class="newuser" align="left"><input type="text" name="birthdate" size="8" maxlength="8" value="%%posted:birthdate%%" /></td>
 			</tr>
 			<tr>
 				<td class="newuser" align="right">%%errs:gender%% Gender:</td>
@@ -48,5 +48,6 @@
             <td class="newuser">
                 <button type="submit">Join!</button>
             </td>
+            </tr>
 		</table>
 	</form>
diff --git a/web/templates/sysinfo.inc b/web/templates/sysinfo.inc
index 929768e981c8f815865161d042a404c21b28242a..3d0b1f2525640126def3e5f447c25776a029bc1b 100644
--- a/web/templates/sysinfo.inc
+++ b/web/templates/sysinfo.inc
@@ -101,8 +101,8 @@ Version %%JS:system.full_version%%</p>
 %%JS:system.compiled_with%%</p>
 <p>%%JS:system.copyright%% - <a href="http://www.synchro.net/">http://www.synchro.net</a></p>
 <p>%%JS:system.js_version%%</p>
-<p>%%JS:system.socket_lib%%</P>
-<p>%%JS:system.os_version%%</P>
+<p>%%JS:system.socket_lib%%</p>
+<p>%%JS:system.os_version%%</p>
 <table>
 <tr>
     <td><pre class="leftalign">@@sysinfo@@</pre></td>
diff --git a/web/templates/userstats.inc b/web/templates/userstats.inc
index 0fffa7a10940bd413e330165617edf3472580019..f3bd78bbf8abdf096e26608d17341806c1ec140d 100644
--- a/web/templates/userstats.inc
+++ b/web/templates/userstats.inc
@@ -7,14 +7,14 @@
   <td class="userstats">%%JS:user.security.expiration_date?strftime("%m/%d/%y",user.security.expiration_date):"Never"%%</td>
   <td class="userstats">Last on:</td>
   <td class="userstats">%%JS:strftime("%m/%d/%y",user.stats.laston_date)%%</td>
-  <td class="userstats" colspan=2>%%JS:strftime("%H:%M",user.stats.laston_date)%%</td>
+  <td class="userstats" colspan="2">%%JS:strftime("%H:%M",user.stats.laston_date)%%</td>
 </tr>
 <tr>
   <td class="userstats">Time on:</td>
   <td class="userstats">%%JS:user.stats.total_timeon%%</td>
   <td class="userstats">Today:</td>
   <td class="userstats"> 
-  <table width="100%" border=0 cellpadding=0 cellspacing=0>
+  <table width="100%" border="0" cellpadding="0" cellspacing="0">
     <tr>
 	  <td class="userstats" align="left">%%JS:user.stats.timeon_today%%&nbsp;</td>
 	  <td class="userstats" align="right">&nbsp;%%JS:user.limits.time_per_day;%%</td>
@@ -23,7 +23,7 @@
   </td>
   <td class="userstats">Last Call:</td>
   <td class="userstats">
-    <table width="100%" border=0 cellpadding=0 cellspacing=0>
+    <table width="100%" border="0" cellpadding="0" cellspacing="0">
     <tr>
 	  <td class="userstats" align="left">%%JS:user.stats.timeon_last_logon%%&nbsp;</td>
 	  <td class="userstats" align="right">&nbsp;%%JS:user.limits.time_per_logon;%%</td>
@@ -38,7 +38,7 @@
   <td class="userstats">%%JS:user.stats.total_logons%%</td>
   <td class="userstats">Today:</td>
   <td class="userstats">
-    <table width="100%" border=0 cellpadding=0 cellspacing=0>
+    <table width="100%" border="0" cellpadding="0" cellspacing="0">
     <tr>
 	  <td class="userstats" align="left">%%JS:user.stats.logons_today%%&nbsp;</td>
 	  <td class="userstats" align="right">&nbsp;%%JS:user.limits.logons_per_day%%</td>
@@ -47,7 +47,7 @@
   </td>
   <td class="userstats">Posts:</td>
   <td class="userstats">
-    <table width="100%" border=0 cellpadding=0 cellspacing=0>
+    <table width="100%" border="0" cellpadding="0" cellspacing="0">
     <tr>
 	  <td class="userstats" align="left">%%JS:user.stats.total_posts%%&nbsp;</td>
 	  <td class="userstats" align="right">&nbsp;%%pinfo%%</td>