diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/RevisionParser.java b/gitiles-servlet/src/main/java/com/google/gitiles/RevisionParser.java
index 3e0acfa..cabde7c 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/RevisionParser.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/RevisionParser.java
@@ -22,6 +22,7 @@
 import com.google.common.base.Splitter;
 
 import org.eclipse.jgit.errors.IncorrectObjectTypeException;
+import org.eclipse.jgit.errors.RevisionSyntaxException;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.revwalk.RevCommit;
@@ -126,7 +127,7 @@
             if (!isValidRevision(oldName)) {
               return null;
             } else {
-              ObjectId old = repo.resolve(oldName);
+              ObjectId old = resolve(oldName);
               if (old == null) {
                 return null;
               }
@@ -143,7 +144,7 @@
             if (!isValidRevision(name)) {
               return null;
             }
-            ObjectId id = repo.resolve(name);
+            ObjectId id = resolve(name);
             if (id == null) {
               return null;
             }
@@ -168,7 +169,7 @@
         if (!isValidRevision(name)) {
           return null;
         }
-        ObjectId id = repo.resolve(name);
+        ObjectId id = resolve(name);
         if (id != null) {
           int pathStart;
           if (oldRevision == null) {
@@ -188,6 +189,14 @@
     }
   }
 
+  private ObjectId resolve(String name) throws IOException {
+    try {
+      return repo.resolve(name);
+    } catch (RevisionSyntaxException e) {
+      return null;
+    }
+  }
+
   private static boolean isValidRevision(String revision) {
     // Disallow some uncommon but valid revision expressions that either we
     // don't support or we represent differently in our URLs.
diff --git a/gitiles-servlet/src/test/java/com/google/gitiles/RevisionParserTest.java b/gitiles-servlet/src/test/java/com/google/gitiles/RevisionParserTest.java
index b0be155..d2480f9 100644
--- a/gitiles-servlet/src/test/java/com/google/gitiles/RevisionParserTest.java
+++ b/gitiles-servlet/src/test/java/com/google/gitiles/RevisionParserTest.java
@@ -53,6 +53,7 @@
     assertEquals(new Result(Revision.peeled("refs/heads/master", master)),
         parser.parse("refs/heads/master"));
     assertNull(parser.parse("refs//heads//master"));
+    assertNull(parser.parse("refs heads master"));
   }
 
   public void testParseRefParentExpression() throws Exception {
@@ -67,6 +68,7 @@
     assertEquals(new Result(Revision.peeled("master^", parent1)), parser.parse("master^"));
     assertEquals(new Result(Revision.peeled("master~1", parent1)), parser.parse("master~1"));
     assertEquals(new Result(Revision.peeled("master^2", parent2)), parser.parse("master^2"));
+    assertNull(parser.parse("master^3"));
     assertEquals(new Result(Revision.peeled("master~2", root)), parser.parse("master~2"));
   }
 
