diff --git a/ReleaseNotes/ReleaseNotes-2.1.2.4.txt b/ReleaseNotes/ReleaseNotes-2.1.2.4.txt
index c651b69..f96c74a 100644
--- a/ReleaseNotes/ReleaseNotes-2.1.2.4.txt
+++ b/ReleaseNotes/ReleaseNotes-2.1.2.4.txt
@@ -25,7 +25,13 @@
 ISO-8859-1 character set is used as a fallback, so the file content
 is still visible.
 
-* Update JGit to 0.7.1.34-gf36df5d to fix empty tree bug
+* issue 553 Bugs sometimes added as change reviewers
++
+Bug references were sometimes added as an 'Anonymous Coward' change
+reviewer when the line used to mention the bug in the commit message
+was the same length as 'Signed-off-by'.  Fixed.
+
+* Update JGit to 0.7.1.46-gdd63f5c to fix empty tree bug
 +
 Repositories which contained an empty tree object (very uncommon, its
 technically a bug to produce a repository like this) wouldn't clone
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java
index 8367885..7bfd585 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountResolver.java
@@ -45,8 +45,9 @@
    * Locate exactly one account matching the name or name/email string.
    *
    * @param nameOrEmail a string of the format
-   *        "Full Name &lt;email@example&gt;", or just the email address
-   *        ("email@example"), or a full name, or an account id.
+   *        "Full Name &lt;email@example&gt;", just the email address
+   *        ("email@example"), a full name ("Full Name"), or an account id
+   *        ("18419").
    * @return the single account that matches; null if no account matches or
    *         there are multiple candidates.
    */
@@ -60,6 +61,20 @@
       return byId.get(Account.Id.parse(nameOrEmail)).getAccount();
     }
 
+    return findByNameOrEmail(nameOrEmail);
+  }
+
+  /**
+   * Locate exactly one account matching the name or name/email string.
+   *
+   * @param nameOrEmail a string of the format
+   *        "Full Name &lt;email@example&gt;", just the email address
+   *        ("email@example"), a full name ("Full Name").
+   * @return the single account that matches; null if no account matches or
+   *         there are multiple candidates.
+   */
+  public Account findByNameOrEmail(final String nameOrEmail)
+      throws OrmException {
     final int lt = nameOrEmail.indexOf('<');
     final int gt = nameOrEmail.indexOf('>');
     if (lt >= 0 && gt > lt && nameOrEmail.contains("@")) {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
index cbc0c0c..cba20ee 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
@@ -388,7 +388,7 @@
 
   private Account.Id toAccountId(final String nameOrEmail) throws OrmException,
       NoSuchAccountException {
-    final Account a = accountResolver.find(nameOrEmail);
+    final Account a = accountResolver.findByNameOrEmail(nameOrEmail);
     if (a == null) {
       throw new NoSuchAccountException("\"" + nameOrEmail
           + "\" is not registered");
diff --git a/pom.xml b/pom.xml
index 417d843..2c88fd8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,7 +46,7 @@
   </issueManagement>
 
   <properties>
-    <jgitVersion>0.7.1.34-gf36df5d</jgitVersion>
+    <jgitVersion>0.7.1.46-gdd63f5c</jgitVersion>
     <gwtormVersion>1.1.4</gwtormVersion>
     <gwtjsonrpcVersion>1.2.2</gwtjsonrpcVersion>
     <gwtexpuiVersion>1.2.1</gwtexpuiVersion>
