diff --git a/tutorial/manpages b/tutorial/manpages
index f7e36050eca20909a6b0b2b156b9fff1549811a1..c0011406b4980e4b4c0b1f7f0e305059b3900e8b 100644
--- a/tutorial/manpages
+++ b/tutorial/manpages
@@ -103,7 +103,13 @@ void make_page(string base, TAG tag, string ind, string fbase)
 			     return u+"/"+s+"."+base;
 			  },fbase,globalbase+base,base);
 
-   sscanf(outfiles[0],"%*s/man%*s/%s.%*s",q);
+   sscanf(outfiles[0],"%*s/man%*s/%s",q);
+   if (q) {
+     array(string) a = q/".";
+     if (sizeof(a) > 1) {
+       q = a[..sizeof(a)-2]*".";
+     }
+   }
    
    werror("files: "+outfiles*", "+"\n");
 
@@ -138,7 +144,8 @@ void make_page(string base, TAG tag, string ind, string fbase)
 
    foreach (({q})+names,string s)
       windex->write(sprintf("%-15s %-15s - %s\n",
-			    s,q+" ("+obase+")",names*", "));
+			    s,q+" ("+obase+")",
+			    tag->params->title || (names*", ")));
 }
 
 void make_pages(string base, SGML data, string ind, string fbase)