diff --git a/.gitignore b/.gitignore
index 805ca2e..c714d38 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
-CREDITS-FILE
 GIT-VERSION-FILE
 git-citool
 git-gui
diff --git a/CREDITS-GEN b/CREDITS-GEN
deleted file mode 100755
index d1b0f86..0000000
--- a/CREDITS-GEN
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-
-CF=CREDITS-FILE
-tip=
-
-tree_search ()
-{
-	head=$1
-	tree=$2
-	for p in $(git rev-list --parents --max-count=1 $head 2>/dev/null)
-	do
-		test $tree = $(git rev-parse $p^{tree} 2>/dev/null) &&
-		vn=$(git describe --abbrev=4 $p 2>/dev/null) &&
-		case "$vn" in
-		gitgui-[0-9]*) echo $p; break;;
-		esac
-	done
-}
-
-generate_credits ()
-{
-	tip=$1 &&
-	rm -f "$2" &&
-	git shortlog -n -s $tip | sed 's/: .*$//' >"$2" || exit
-}
-
-# Always use the tarball credits file if found, just
-# in case we are somehow contained in a larger git
-# repository that doesn't actually track our state.
-# (At least one package manager is doing this.)
-#
-# We may be a subproject, so try looking for the merge
-# commit that supplied this directory content if we are
-# not at the toplevel.  We probably will always be the
-# second parent in the commit, but we shouldn't rely on
-# that fact.
-#
-
-credits_tmp=/var/tmp/gitgui-credits-$$
-trap 'rm -f "$credits_tmp"' 0
-
-orig="$credits_tmp"
-
-if test -f credits
-then
-	orig=credits
-elif prefix="$(git rev-parse --show-prefix 2>/dev/null)" &&
-   test -n "$prefix" &&
-   head=$(git rev-list --max-count=1 HEAD -- . 2>/dev/null) &&
-   tree=$(git rev-parse --verify "HEAD:$prefix" 2>/dev/null) &&
-   tip=$(tree_search $head $tree) &&
-   test -n "$tip"
-then
-	generate_credits $tip "$orig" || exit
-elif tip="$(git rev-parse --verify HEAD 2>/dev/null)" &&
-   test -n "$tip"
-then
-	generate_credits $tip "$orig" || exit
-else
-	echo "error: Cannot locate authorship information." >&2
-	exit 1
-fi
-
-if test -f "$orig" && cmp -s "$orig" "$CF"
-then
-	: noop
-else
-	rm -f "$CF" &&
-	cat "$orig" >"$CF"
-fi
-
diff --git a/Makefile b/Makefile
index a219b5d..b82789e 100644
--- a/Makefile
+++ b/Makefile
@@ -7,8 +7,9 @@
 	@$(SHELL_PATH) ./GIT-VERSION-GEN
 -include GIT-VERSION-FILE
 
+SCRIPT_SH = git-gui.sh
 GITGUI_BUILT_INS = git-citool
-ALL_PROGRAMS = git-gui $(GITGUI_BUILT_INS)
+ALL_PROGRAMS = $(GITGUI_BUILT_INS) $(patsubst %.sh,%,$(SCRIPT_SH))
 
 ifndef SHELL_PATH
 	SHELL_PATH = /bin/sh
@@ -36,24 +37,20 @@
 gitexecdir_SQ = $(subst ','\'',$(gitexecdir))
 SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
 
-git-gui: git-gui.sh GIT-VERSION-FILE CREDITS-FILE
+$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
 	$(QUIET_GEN)rm -f $@ $@+ && \
-	sed -n \
-		-e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
+	sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
 		-e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \
-		-e '1,/^set gitgui_credits /p' \
 		$@.sh >$@+ && \
-	cat CREDITS-FILE >>$@+ && \
-	sed -e '1,/^set gitgui_credits /d' $@.sh >>$@+ && \
 	chmod +x $@+ && \
 	mv $@+ $@
 
-CREDITS-FILE: CREDITS-GEN .FORCE-CREDITS-FILE
-	$(QUIET_GEN)$(SHELL_PATH) ./CREDITS-GEN
-
 $(GITGUI_BUILT_INS): git-gui
 	$(QUIET_BUILT_IN)rm -f $@ && ln git-gui $@
 
+# These can record GITGUI_VERSION
+$(patsubst %.sh,%,$(SCRIPT_SH)): GIT-VERSION-FILE
+
 all:: $(ALL_PROGRAMS)
 
 install: all
@@ -61,14 +58,12 @@
 	$(INSTALL) git-gui '$(DESTDIR_SQ)$(gitexecdir_SQ)'
 	$(foreach p,$(GITGUI_BUILT_INS), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;)
 
-dist-version: CREDITS-FILE
+dist-version:
 	@mkdir -p $(TARDIR)
 	@echo $(GITGUI_VERSION) > $(TARDIR)/version
-	@cat CREDITS-FILE > $(TARDIR)/credits
 
 clean::
-	rm -f $(ALL_PROGRAMS) GIT-VERSION-FILE CREDITS-FILE
+	rm -f $(ALL_PROGRAMS) GIT-VERSION-FILE
 
 .PHONY: all install dist-version clean
 .PHONY: .FORCE-GIT-VERSION-FILE
-.PHONY: .FORCE-CREDITS-FILE
diff --git a/git-gui.sh b/git-gui.sh
index 1981827..60e79ca 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -19,9 +19,6 @@
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA}
-set gitgui_credits {
-Paul Mackerras
-}
 
 ######################################################################
 ##
@@ -302,6 +299,11 @@
 ##
 ## version check
 
+if {{--version} eq $argv || {version} eq $argv} {
+	puts "git-gui version $appvers"
+	exit
+}
+
 set req_maj 1
 set req_min 5
 
@@ -1171,7 +1173,7 @@
 		}
 		}
 	}
-	if {!$files_ready} {
+	if {!$files_ready && ![string match *merge $curType]} {
 		info_popup {No changes to commit.
 
 You must add at least 1 file before you can commit.
@@ -4492,61 +4494,6 @@
 	commit_tree
 }
 
-proc do_credits {} {
-	global gitgui_credits
-
-	set w .credits_dialog
-
-	toplevel $w
-	wm geometry $w "+[winfo rootx .]+[winfo rooty .]"
-
-	label $w.header -text {git-gui Contributors} -font font_uibold
-	pack $w.header -side top -fill x
-
-	frame $w.buttons
-	button $w.buttons.close -text {Close} \
-		-font font_ui \
-		-command [list destroy $w]
-	pack $w.buttons.close -side right
-	pack $w.buttons -side bottom -fill x -pady 10 -padx 10
-
-	frame $w.credits
-	text $w.credits.t \
-		-background [$w.header cget -background] \
-		-yscrollcommand [list $w.credits.sby set] \
-		-width 20 \
-		-height 10 \
-		-wrap none \
-		-borderwidth 1 \
-		-relief solid \
-		-padx 5 -pady 5 \
-		-font font_ui
-	scrollbar $w.credits.sby -command [list $w.credits.t yview]
-	pack $w.credits.sby -side right -fill y
-	pack $w.credits.t -fill both -expand 1
-	pack $w.credits -side top -fill both -expand 1 -padx 5 -pady 5
-
-	label $w.desc \
-		-text "All portions are copyrighted by their respective authors
-and are distributed under the GNU General Public License." \
-		-padx 5 -pady 5 \
-		-justify left \
-		-anchor w \
-		-borderwidth 1 \
-		-relief solid \
-		-font font_ui
-	pack $w.desc -side top -fill x -padx 5 -pady 5
-
-	$w.credits.t insert end "[string trim $gitgui_credits]\n"
-	$w.credits.t conf -state disabled
-	$w.credits.t see 1.0
-
-	bind $w <Visibility> "grab $w; focus $w"
-	bind $w <Key-Escape> [list destroy $w]
-	wm title $w [$w.header cget -text]
-	tkwait window $w
-}
-
 proc do_about {} {
 	global appvers copyright
 	global tcl_patchLevel tk_patchLevel
@@ -4563,10 +4510,6 @@
 	button $w.buttons.close -text {Close} \
 		-font font_ui \
 		-command [list destroy $w]
-	button $w.buttons.credits -text {Contributors} \
-		-font font_ui \
-		-command do_credits
-	pack $w.buttons.credits -side left
 	pack $w.buttons.close -side right
 	pack $w.buttons -side bottom -fill x -pady 10 -padx 10
 
@@ -5116,8 +5059,6 @@
 enable_option transport
 
 switch -- $subcommand {
---version -
-version -
 browser -
 blame {
 	disable_option multicommit
@@ -5488,11 +5429,6 @@
 # -- Not a normal commit type invocation?  Do that instead!
 #
 switch -- $subcommand {
---version -
-version {
-	puts "git-gui version $appvers"
-	exit
-}
 browser {
 	if {[llength $argv] != 1} {
 		puts stderr "usage: $argv0 browser commit"
