diff --git a/Documentation/git-cvsimport-script.txt b/Documentation/git-cvsimport-script.txt
index d01a15d..9d8acfc 100644
--- a/Documentation/git-cvsimport-script.txt
+++ b/Documentation/git-cvsimport-script.txt
@@ -44,6 +44,9 @@
 	to avoid noisy changesets. Highly recommended, but off by default
 	to preserve compatibility with early imported trees. 
 
+-u::
+	Convert underscores in tag and branch names to dots.
+
 -o <branch-for-HEAD>::
 	The 'HEAD' branch from CVS is imported to the 'origin' branch within
 	the git repository, as 'HEAD' already has a special meaning for git.
diff --git a/Documentation/git-get-tar-commit-id.txt b/Documentation/git-get-tar-commit-id.txt
index f9c4140..0eb5e28 100644
--- a/Documentation/git-get-tar-commit-id.txt
+++ b/Documentation/git-get-tar-commit-id.txt
@@ -3,25 +3,24 @@
 
 NAME
 ----
-git-get-tar-commit-id - Some git command not yet documented.
+git-get-tar-commit-id - Extract commit ID from an archive created using git-tar-tree.
 
 
 SYNOPSIS
 --------
-'git-get-tar-commit-id' [ --option ] <args>...
+'git-get-tar-commit-id' < <tarfile>
+
 
 DESCRIPTION
 -----------
-Does something not yet documented.
+Acts as a filter, extracting the commit ID stored in archives created by
+git-tar-tree.  It reads only the first 1024 bytes of input, thus its
+runtime is not influenced by the size of <tarfile> very much.
 
-
-OPTIONS
--------
---option::
-	Some option not yet documented.
-
-<args>...::
-	Some argument not yet documented.
+If no commit ID is found, git-get-tar-commit-id quietly exists with a
+return code of 1.  This can happen if <tarfile> had not been created
+using git-tar-tree or if the first parameter of git-tar-tree had been
+a tree ID instead of a commit ID or tag.
 
 
 Author
diff --git a/Documentation/git-rename-script.txt b/Documentation/git-rename-script.txt
index 1abc68b..b110525 100644
--- a/Documentation/git-rename-script.txt
+++ b/Documentation/git-rename-script.txt
@@ -1,6 +1,5 @@
-
 git-rename-script(1)
-=====================
+====================
 v0.1, May 2005
 
 NAME
diff --git a/Documentation/git-repack-script.txt b/Documentation/git-repack-script.txt
index cd449bc..df94ec1 100644
--- a/Documentation/git-repack-script.txt
+++ b/Documentation/git-repack-script.txt
@@ -1,5 +1,5 @@
 git-repack-script(1)
-=====================
+====================
 v0.99.5, August 2005
 
 NAME
diff --git a/Documentation/git-send-email-script.txt b/Documentation/git-send-email-script.txt
index 9ad82cc..f79ad19 100644
--- a/Documentation/git-send-email-script.txt
+++ b/Documentation/git-send-email-script.txt
@@ -1,5 +1,5 @@
 git-send-email-script(1)
-=======================
+========================
 v0.1, July 2005
 
 NAME
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 0bcd990..b10edff 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -319,6 +319,8 @@
 link:git-send-email-script.html[git-send-email]::
 	Send patch e-mails out of "format-patch --mbox" output.
 
+link:git-get-tar-commit-id.html[git-get-tar-commit-id]::
+	Extract commit ID from an archive created using git-tar-tree.
 
 Commands not yet documented
 ---------------------------
@@ -338,9 +340,6 @@
 link:git-format-patch-script.html[git-format-patch-script]::
 	git-format-patch-script.
 
-link:git-get-tar-commit-id.html[git-get-tar-commit-id]::
-	git-get-tar-commit-id.
-
 link:git-request-pull-script.html[git-request-pull-script]::
 	git-request-pull-script.
 
diff --git a/get-tar-commit-id.c b/get-tar-commit-id.c
index a1a17e5..4166290 100644
--- a/get-tar-commit-id.c
+++ b/get-tar-commit-id.c
@@ -1,3 +1,6 @@
+/*
+ * Copyright (C) 2005 Rene Scharfe
+ */
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/git-cvsimport-script b/git-cvsimport-script
index e3a8e58..5079c79 100755
--- a/git-cvsimport-script
+++ b/git-cvsimport-script
@@ -24,23 +24,24 @@
 use IO::Socket;
 use IO::Pipe;
 use POSIX qw(strftime dup2);
+use IPC::Open2;
 
 $SIG{'PIPE'}="IGNORE";
 $ENV{'TZ'}="UTC";
 
-our($opt_h,$opt_o,$opt_v,$opt_k,$opt_d,$opt_p,$opt_C,$opt_z,$opt_i,$opt_s,$opt_m,$opt_M);
+our($opt_h,$opt_o,$opt_v,$opt_k,$opt_u,$opt_d,$opt_p,$opt_C,$opt_z,$opt_i,$opt_s,$opt_m,$opt_M);
 
 sub usage() {
 	print STDERR <<END;
 Usage: ${\basename $0}     # fetch/update GIT from CVS
-       [ -o branch-for-HEAD ] [ -h ] [ -v ] [ -d CVSROOT ]
-       [ -p opts-for-cvsps ] [ -C GIT_repository ] [ -z fuzz ]
-       [ -i ] [ -k ] [-s subst] [ -m ] [ -M regex] [ CVS_module ]
+       [-o branch-for-HEAD] [-h] [-v] [-d CVSROOT]
+       [-p opts-for-cvsps] [-C GIT_repository] [-z fuzz]
+       [-i] [-k] [-u] [-s subst] [-m] [-M regex] [CVS_module]
 END
 	exit(1);
 }
 
-getopts("hivmko:d:p:C:z:s:M:") or usage();
+getopts("hivmkuo:d:p:C:z:s:M:") or usage();
 usage if $opt_h;
 
 @ARGV <= 1 or usage();
@@ -628,13 +629,37 @@
 		or die "Cannot write branch $branch for update: $!\n";
 
 	if($tag) {
-		open(C,">$git_dir/refs/tags/$tag")
-			or die "Cannot create tag $tag: $!\n";
-		print C "$cid\n"
-			or die "Cannot write tag $branch: $!\n";
+		my($in, $out) = ('','');
+	        my($xtag) = $tag;
+		$xtag =~ s/\s+\*\*.*$//; # Remove stuff like ** INVALID ** and ** FUNKY **
+		$xtag =~ tr/_/\./ if ( $opt_u );
+		
+		my $pid = open2($in, $out, 'git-mktag');
+		print $out "object $cid\n".
+		    "type commit\n".
+		    "tag $xtag\n".
+		    "tagger $author <$author>\n"
+		    or die "Cannot create tag object $xtag: $!\n";
+		close($out)
+		    or die "Cannot create tag object $xtag: $!\n";
+
+		my $tagobj = <$in>;
+		chomp $tagobj;
+
+		if ( !close($in) or waitpid($pid, 0) != $pid or
+		     $? != 0 or $tagobj !~ /^[0123456789abcdef]{40}$/ ) {
+		    die "Cannot create tag object $xtag: $!\n";
+	        }
+		
+
+		open(C,">$git_dir/refs/tags/$xtag")
+			or die "Cannot create tag $xtag: $!\n";
+		print C "$tagobj\n"
+			or die "Cannot write tag $xtag: $!\n";
 		close(C)
-			or die "Cannot write tag $branch: $!\n";
-		print "Created tag '$tag' on '$branch'\n" if $opt_v;
+			or die "Cannot write tag $xtag: $!\n";
+
+		print "Created tag '$xtag' on '$branch'\n" if $opt_v;
 	}
 };
 
