diff --git a/bin/export.pike b/bin/export.pike
index af076fa1f72f54073f06dcdf6cc50fb0c0715eeb..cf56fb5c1a86c0ed4605bd94bb7723d3eb3380f8 100755
--- a/bin/export.pike
+++ b/bin/export.pike
@@ -1,6 +1,6 @@
 #!/usr/local/bin/pike
 
-/* $Id: export.pike,v 1.19 1998/03/31 21:59:29 hubbe Exp $ */
+/* $Id: export.pike,v 1.20 1998/05/13 23:29:09 hubbe Exp $ */
 
 #include <simulate.h>
 
@@ -65,12 +65,28 @@ string getversion()
   return s;
 }
 
+void bump_version()
+{
+  werror("Bumping release number.\n");
+  Process.create_process(({"cvs","update","version.c"}),(["cwd":"pike/src"] ))->wait();
+
+  string s=Stdio.read_file("pike/src/version.c");
+  sscanf(s,"%s release %d%s",string pre, int rel, string post);
+  rel++;
+  Stdio.File("pike/src/version.c","wct")->write(pre+" release "+rel+post);
+  Process.create_process(({"cvs","commit","-m",
+			     "release number bumped by export.pike",
+			     "version.c"}),
+			 (["cwd":"pike/src"]))->wait();
+}
+
 
 int main(int argc, string *argv)
 {
   mixed tmp;
   int e;
   string *files;
+  object cvs;
 
   tmp=reverse(argv[0]/"/");
   except_modules=mklist(argv[1..]);
@@ -87,24 +103,14 @@ int main(int argc, string *argv)
 
   if(file_stat("pike/CVS"))
   {
-    werror("Bumping release number.\n");
-    Process.create_process(({"cvs","update","version.c"}),
-			   (["cwd":"pike/src"] ))->wait();
-    string s=Stdio.read_file("pike/src/version.c");
-    sscanf(s,"%s release %d%s",string pre, int rel, string post);
-    rel++;
-    Stdio.File("pike/src/version.c","wct")->write(pre+" release "+rel+post);
-    Process.create_process(({"cvs","commit","-m",
-			       "release number bumped by export.pike",
-			       "version.c"}),
-			   (["cwd":"pike/src"]))->wait();
-
+    bump_version();
 
     vpath=replace(replace(getversion()," ","-"),"-release-",".");
     string tag=replace(vpath,({"Pike-","."}),({"","_"}));
 
     werror("Creating tag "+tag+" in the background.\n");
-    system("cd pike ; cvs tag -R -F "+tag+"&");
+    cvs=Process.create_process(({"cvs","tag","-R","-F",tag}),
+			   (["cwd":"pike/src"]));
   }else{
     vpath=replace(replace(getversion()," ","-"),"-release-",".");
   }
@@ -129,5 +135,11 @@ int main(int argc, string *argv)
   spawn("gzip -9",o,Stdio.File("pike/"+vpath+"-indigo.tar.gz","wct"))->wait();
   rm(vpath);
   werror("Done.\n");
+
+  if(cvs)
+  {
+    cvs->wait();
+    bump_version();
+  }
   return 0;
 }