diff --git a/lib/commit.tcl b/lib/commit.tcl
index 60edf99..1623897 100644
--- a/lib/commit.tcl
+++ b/lib/commit.tcl
@@ -1,13 +1,8 @@
 # git-gui misc. commit reading/writing support
 # Copyright (C) 2006, 2007 Shawn Pearce
 
-set author_name ""
-set author_email ""
-set author_date ""
-
 proc load_last_commit {} {
-	global HEAD PARENT MERGE_HEAD commit_type ui_comm
-	global author_name author_email author_date
+	global HEAD PARENT MERGE_HEAD commit_type ui_comm commit_author
 	global repo_config
 
 	if {[llength $PARENT] == 0} {
@@ -40,9 +35,7 @@
 				} elseif {[string match {encoding *} $line]} {
 					set enc [string tolower [string range $line 9 end]]
 				} elseif {[regexp "author (.*)\\s<(.*)>\\s(\\d.*$)" $line all name email time]} {
-					set author_name $name
-					set author_email $email
-					set author_date $time
+					set commit_author [list name $name email $email date $time]
 				}
 			}
 			set msg [read $fd]
@@ -115,13 +108,10 @@
 }
 
 proc create_new_commit {} {
-	global commit_type ui_comm
-	global author_name author_email author_date
+	global commit_type ui_comm commit_author
 
 	set commit_type normal
-	set author_name ""
-	set author_email ""
-	set author_date ""
+	unset -nocomplain commit_author
 	$ui_comm delete 0.0 end
 	$ui_comm edit reset
 	$ui_comm edit modified false
@@ -335,12 +325,12 @@
 }
 
 proc commit_committree {fd_wt curHEAD msg_p} {
-	global HEAD PARENT MERGE_HEAD commit_type
+	global HEAD PARENT MERGE_HEAD commit_type commit_author
 	global current_branch
 	global ui_comm selected_commit_type
 	global file_states selected_paths rescan_active
 	global repo_config
-	global env author_name author_email author_date
+	global env
 
 	gets $fd_wt tree_id
 	if {[catch {close $fd_wt} err]} {
@@ -380,10 +370,8 @@
 		}
 	}
 
-	if {$author_name ne ""} {
-		set env(GIT_AUTHOR_NAME) $author_name
-		set env(GIT_AUTHOR_EMAIL) $author_email
-		set env(GIT_AUTHOR_DATE) $author_date
+	if {[info exists commit_author]} {
+		set old_author [commit_author_ident $commit_author]
 	}
 	# -- Create the commit.
 	#
@@ -397,8 +385,14 @@
 		error_popup [strcat [mc "commit-tree failed:"] "\n\n$err"]
 		ui_status [mc "Commit failed."]
 		unlock_index
+		unset -nocomplain commit_author
+		commit_author_reset $old_author
 		return
 	}
+	if {[info exists commit_author]} {
+		unset -nocomplain commit_author
+		commit_author_reset $old_author
+	}
 
 	# -- Update the HEAD ref.
 	#
@@ -525,3 +519,20 @@
 	}
 	fconfigure $fd_ph -blocking 0
 }
+
+proc commit_author_ident {details} {
+	global env
+	array set author $details
+	set old [array get env GIT_AUTHOR_*]
+	set env(GIT_AUTHOR_NAME) $author(name)
+	set env(GIT_AUTHOR_EMAIL) $author(email)
+	set env(GIT_AUTHOR_DATE) $author(date)
+	return $old
+}
+proc commit_author_reset {details} {
+	global env
+	unset env(GIT_AUTHOR_NAME) env(GIT_AUTHOR_EMAIL) env(GIT_AUTHOR_DATE)
+	if {$details ne {}} {
+		array set env $details
+	}
+}
