diff --git a/bin/export.pike b/bin/export.pike
index 68851ca3d2e857ffcae168f03bc110afffa2fe36..0f309382ff3312bdde0e60306414db8ec80c36d4 100755
--- a/bin/export.pike
+++ b/bin/export.pike
@@ -1,6 +1,6 @@
 #!/usr/local/bin/pike
 
-/* $Id: export.pike,v 1.29 1999/09/10 00:08:43 hubbe Exp $ */
+/* $Id: export.pike,v 1.30 2000/03/27 00:45:25 hubbe Exp $ */
 
 #include <simulate.h>
 import Stdio;
@@ -203,8 +203,32 @@ int main(int argc, string *argv)
 
   werror("Creating "+vpath+"-indigo.tar.gz:\n");
   object o=Stdio.File();
-  spawn("tar cvf - "+files*" ",0,o->pipe(Stdio.PROP_IPC));
-  spawn("gzip -9",o,Stdio.File(pike_base_name+"/"+vpath+"-indigo.tar.gz","wct"))->wait();
+
+  int first=1;
+  foreach(files/50,files)
+    {
+      if(Process.create_process(({"tar",
+				    first?"cvf":"rvf",
+				    pike_base_name+"/"+vpath+"-indigo.tar"
+				    })+files)->wait())
+      {
+	werror("Tar file creation failed!\n");
+	if(cvs) cvs->wait();
+	exit(1);
+      }
+      first=0;
+    }
+
+  if(Process.create_process(({"gzip",
+				"-9",
+				pike_base_name+"/"+vpath+"-indigo.tar"
+})
+			    )->wait())
+  {
+    werror("Gzip failed!\n");
+    if(cvs) cvs->wait();
+    exit(1);
+  }
   rm(vpath);
   werror("Done.\n");
 
diff --git a/bin/install.pike b/bin/install.pike
index 38d5d3754d2248fb25dac46ccc87d6fcd8e81997..b36e42e8d8f5d7a131cf3bbb426cbd08dea4827a 100644
--- a/bin/install.pike
+++ b/bin/install.pike
@@ -511,10 +511,17 @@ done
 	      });
 
 
-  status("Creating",tmpname+".tar");
-  
-  Process.create_process(({"tar","cf",tmpname+".tar"})+ to_export)
-    ->wait();
+  string tmpmsg=".";
+
+  string tararg="cf";
+  foreach(to_export/50, array files_to_tar)
+    {
+      status("Creating",tmpname+".tar",tmpmsg);
+      tmpmsg+=".";
+      Process.create_process(({"tar",tararg,tmpname+".tar"})+ to_export)
+	->wait();
+      tararg="rf";
+    }
 
   status("Creating",tmpname+".tar.gz");
 
diff --git a/src/configure.in b/src/configure.in
index 145fe2264a12f47b43e8bdc66b50d7779a4d079c..988463d4ac5ca7a6e22c1d3822bd40afb0e67347 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -1,4 +1,4 @@
-AC_REVISION("$Id: configure.in,v 1.353 2000/03/26 20:57:27 hubbe Exp $")
+AC_REVISION("$Id: configure.in,v 1.354 2000/03/27 00:45:32 hubbe Exp $")
 AC_INIT(interpret.c)
 AC_CONFIG_HEADER(machine.h)
 
@@ -1367,8 +1367,16 @@ int main(int argc, char **argv)
         AC_MSG_RESULT(no)
       else
         AC_MSG_RESULT(yes)
-        CFLAGS="${CFLAGS} -pthread"
-        LD_FALLBACK_FLAGS="${LD_FALLBACK_FLAGS-} -lc_r"
+
+        AC_PATH_PROG(PTHREAD_CONFIG,pthread-config,no)
+        if [ "x$PTHREAD_CONFIG" = xno ]; then
+          CFLAGS="${CFLAGS} -pthread"
+          LD_FALLBACK_FLAGS="${LD_FALLBACK_FLAGS-} -lc_r"
+        else
+          CFLAGS="$CFLAGS `pthread-config --cflags`"
+          LIBS="$LIBS `pthread-config --libs`"
+          LDFLAGS="$CFLAGS `pthread-config --ldflags`"
+        fi
       fi
     ;;