diff --git a/ident.c b/ident.c
index 87c697c2b0..5df094d175 100644
--- a/ident.c
+++ b/ident.c
@@ -244,7 +244,7 @@ int split_ident_line(struct ident_split *split, const char *line, int len)
if (!split->mail_begin)
return status;
- for (cp = split->mail_begin - 2; line < cp; cp--)
+ for (cp = split->mail_begin - 2; line <= cp; cp--)
if (!isspace(*cp)) {
split->name_end = cp + 1;
break;
diff --git a/t/t6006-rev-list-format.sh b/t/t6006-rev-list-format.sh
index 444279077e..244701e96e 100755
--- a/t/t6006-rev-list-format.sh
+++ b/t/t6006-rev-list-format.sh
@@ -282,4 +282,11 @@ test_expect_success 'oneline with empty message' '
test $(git rev-list --oneline --graph HEAD | wc -l) -eq 5
'
+test_expect_success 'single-character name is parsed correctly' '
+ git commit --author="a " --allow-empty -m foo &&
+ echo "a " >expect &&
+ git log -1 --format="%an <%ae>" >actual &&
+ test_cmp expect actual
+'
+
test_done