diff --git a/src/dumpmodule.pike b/src/dumpmodule.pike
index cab94a790e221995b1d966413f60d87dd4d6ef2b..35318e37474fa20443c7b237409c36e96b3a42e6 100755
--- a/src/dumpmodule.pike
+++ b/src/dumpmodule.pike
@@ -92,13 +92,25 @@ class Codec
 
 int quiet=0;
 
+Stdio.File logfile;
+function log(string file, int line, string err)
+{
+  logfile->write("================================================\n");
+  logfile->write(sprintf("%s:%d:%s\n",file,line,err));
+}
+
 int main(int argc, string *argv)
 {
   if(argv[1]=="--quiet")
   {
     quiet=1;
     argv=argv[1..];
-    master()->set_inhibit_compile_errors(1);
+    master()->set_inhibit_compile_errors(log);
+
+    // FIXME: Make this a command line option..
+    // It should not be done when running a binary dist
+    // installation...
+    logfile=Stdio.File("dumpmodule.log","cwt");
     werror("Dumping modules ");
   }
 
@@ -152,9 +164,14 @@ int main(int argc, string *argv)
 	werror(master()->describe_backtrace(err));
 #else
 	if(quiet)
+	{
 	  werror("X");
-	else
+	  err[0]="While dumping "+file+": "+err[0];
+	  logfile->write("================================================\n");
+	  logfile->write(master()->describe_backtrace(err));
+	}else{
 	  werror(err[0]);
+	}
 #endif
       }
     }