diff --git a/bin/pikedoc2.pike b/bin/pikedoc2.pike
index 05075ccd708f21db69731282979883a6ce6e5583..a086fc67115f4002cfee23018e9b6319330d6a74 100755
--- a/bin/pikedoc2.pike
+++ b/bin/pikedoc2.pike
@@ -1,6 +1,6 @@
 #!/usr/local/bin/pike
 /*
- * $Id: pikedoc2.pike,v 1.2 1999/07/09 17:10:06 grubba Exp $
+ * $Id: pikedoc2.pike,v 1.3 2000/10/08 18:16:35 grubba Exp $
  *
  * Pike-doc extractor mk II
  *
@@ -107,9 +107,9 @@ string _extract_pikedoc(string tag, mapping attrs, string contents,
   return("");
 }
 
-string extract_pikedoc(string input)
+string extract_pikedoc(string input, mapping|void res)
 {
-  mapping res = (["res":""]);
+  res = res || (["res":""]);
 
   parse_html(input, ([]), (["pikedoc":_extract_pikedoc]), res);
 
@@ -118,9 +118,20 @@ string extract_pikedoc(string input)
 
 int main(int argc, array(string) argv)
 {
-  string raw = Stdio.stdin->read();
+  if (argc == 1) {
+    string raw = Stdio.stdin->read();
 
-  write(extract_pikedoc(raw));
+    write(extract_pikedoc(raw));
+  } else {
+    foreach(argv[1..], string fname) {
+      string raw = Stdio.File(fname, "r")->read();
+      mapping res = ([]);
+      extract_pikedoc(raw, res);
 
+      foreach(indices(raw), string group) {
+	// Do something interresting.
+      }
+    }
+  }
   return(0);
 }