diff --git a/www/GNUmakefile.in b/www/GNUmakefile.in
index 130cbc5779644b38f611aa090c1498da80aa2155..4ccf0cdb40256d69c47a9126eea764c048a4cd82 100644
--- a/www/GNUmakefile.in
+++ b/www/GNUmakefile.in
@@ -64,6 +64,10 @@ BUIFILES += $(wildcard $(SRCDIR)/buildui/*.class)
 
 WEBDBFILES = $(wildcard $(SRCDIR)/webdb/*.php3)
 
+# need to make it *.gz; with simply "*", 
+# we end up sucking over "CVS"
+DOWNLOADFILES = $(wildcard $(SRCDIR)/downloads/*.gz)
+
 #
 # This stuff only gets installed on the main site
 #
@@ -85,6 +89,7 @@ ALLDOCS   = $(notdir $(DOCFILES))
 ALLTUTS   = $(notdir $(TUTFILES))
 ALLICONS  = $(notdir $(AUTOICONS))
 ALLWEBDB  = $(notdir $(WEBDBFILES))
+ALLDOWNLOADS = $(notdir $(DOWNLOADFILES))
 ALLCVSWEB = $(notdir $(CVSWEBFILES))
 ALLBUI    = $(notdir $(BUIFILES))
 
@@ -93,6 +98,7 @@ install: $(addprefix $(INSTALL_WWWDIR)/, $(ALLFILES)) \
 	$(addprefix $(INSTALL_WWWDIR)/tutorial/, $(ALLTUTS)) \
 	$(addprefix $(INSTALL_WWWDIR)/doc/, $(ALLDOCS)) \
 	$(addprefix $(INSTALL_WWWDIR)/webdb/, $(ALLWEBDB)) \
+	$(addprefix $(INSTALL_WWWDIR)/downloads/, $(ALLDOWNLOADS)) \
 	$(addprefix $(INSTALL_WWWDIR)/buildui/, $(ALLBUI)) \
 	$(addprefix $(INSTALL_WWWDIR)/autostatus-icons/, $(ALLICONS)) \
 	$(addprefix $(INSTALL_WWWDIR)/cvsweb/, $(ALLCVSWEB))
diff --git a/www/faq.html b/www/faq.html
index e1b3c7fe90d12326c1683cb76e8fb2575ae0cee4..285f598f88da2520ccac74aad73ceb2d5c9a82a6 100644
--- a/www/faq.html
+++ b/www/faq.html
@@ -27,6 +27,8 @@
      <li> <a href="#UTT-TOOFEW">What if I need more nodes than are free?</a>
      <li> <a href="#UTT-2">Do I get root access on my nodes?</a>
      <li> <a href="#UTT-3">Do my nodes have consoles I can look at?</a>
+     <li> <a href="#UTT-TUNNEL">How do I connect directly to node consoles, 
+                                without going through <b>users</b>?</a>
      <li> <a href="#UTT-4">Can I reboot (power cycle) my nodes?</a>
      <li> <a href="#UTT-SCROGGED">I've scrogged my disk! Now what?</a>
      <li> <a href="#UTT-5">Where do I store files needed by my experiment?</a>
@@ -339,6 +341,32 @@
     of the node on the shelf is eight.
     </p>
 
+<li><a NAME="UTT-TUNNEL"></a>
+    <h3>How do I connect directly to node consoles, 
+        without going through <b>users</b>?</h3>
+    <p>
+    Clicking "Connect to Serial Line"
+    in the Node Options page will send your browser a "text/x-testbed-acl"
+    file. If you have downloaded <code>tiptunnel</code> and set it as the 
+    handler for that MIME type, <code>tiptunnel</code> will launch a new 
+    telnet running in a new xterm (this may take a few seconds.) 
+    That telnet will be connected to a local port, 
+    which is tunneled through SSL to your node's console. 
+    Closing the xterm, exiting telnet, or killing <code>tiptunnel</code>
+    itself will end the connection.
+    </p>
+    <p>
+    You can download the gzipped <code>tiptunnel</code> 
+    statically-linked x86 binary for FreeBSD 
+    <a href="downloads/tiptunnel.gz">here</a>.
+    Simply <code>gunzip</code> it to somewhere accessible,
+    set it as executable with <code>chmod u+x tiptunnel</code>,  
+    and when you click on the "Connect to Serial Line" link,
+    tell your browser to always use the <code>tiptunnel</code> 
+    binary to open files of type "text/x-testbed-acl".
+    The source tarball, as well as a version for Windows, 
+    will be available soon.
+    </p>
 <li><a NAME="UTT-4"></a>
     <h3>Can I reboot (power cycle) my nodes?</h3>
     <p>
diff --git a/www/nodetipacl.php3 b/www/nodetipacl.php3
index 0b7f8dae1e89feb35453c94d701b1eb9b1cf2775..72873a992a918e75144a2ef200e686b56962012a 100644
--- a/www/nodetipacl.php3
+++ b/www/nodetipacl.php3
@@ -40,7 +40,7 @@ if (mysql_num_rows($query_result) == 0) {
 
 $filename = $node_id . ".acl"; 
 
-header("Content-Type: text/testbed-acl");
+header("Content-Type: text/x-testbed-acl");
 header("Content-Disposition: attachment; filename=$filename;");
 header("Content-Description: ACL key file for a testbed node serial port");
 
@@ -54,11 +54,13 @@ $keylen  = $row[keylen];
 $keydata = $row[keydata];
 
 # XXX fix me!!!
-$certhash = "7161bb44818e7be5a5bcd58506163e1583e6aa1c";
+# $certhash = "7161bb44818e7be5a5bcd58506163e1583e6aa1c";
+$certhash = "0bc864551de711a3d46ac173dbd67cde75c36734";
 
 echo "host:   $server\n";	
 echo "port:   $portnum\n";
 echo "keylen: $keylen\n";
 echo "key:    $keydata\n";
 echo "ssl-server-cert: $certhash\n";
-?>
\ No newline at end of file
+?>
+
diff --git a/www/shownode.php3 b/www/shownode.php3
index a66f90648bf814b7df4771c6eeb61d443612abed..8906498b5a998f9ac4fc5cf81ac7adfdbc862f17 100644
--- a/www/shownode.php3
+++ b/www/shownode.php3
@@ -42,10 +42,20 @@ if (! $isadmin) {
 SUBPAGESTART();
 SUBMENUSTART("Node Options");
 
+#
+# Tip to node option
+#
+if ($isadmin || 
+    TBNodeAccessCheck($uid, $node_id, $TB_NODEACCESS_MODIFYINFO)) {
+    WRITESUBMENUBUTTON("Connect to Serial Line</a> " . 
+	"<a href=\"faq.php3#UTT-TUNNEL\">(howto)",
+	"nodetipacl.php3?node_id=$node_id");
+}
+
 #
 # Edit option
 #
-WRITESUBMENUBUTTON("Edit node info",
+WRITESUBMENUBUTTON("Edit Node Info",
 		   "nodecontrol_form.php3?node_id=$node_id");
 
 if (TBNodeAccessCheck($uid, $node_id, $TB_NODEACCESS_REBOOT)) {
@@ -61,6 +71,8 @@ if ($isadmin) {
 }
 SUBMENUEND();
 
+# echo "<h4>(<a href=\"faq.php3#UTT-TUNNEL\">Help on 'connect to serial line'</a>)</h4>";
+
 #
 # Dump record.
 # 
@@ -73,3 +85,7 @@ SUBPAGEEND();
 # 
 PAGEFOOTER();
 ?>
+
+
+
+