diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/ArchiveServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/ArchiveServlet.java
index dc761b0..d9ef0bf 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/ArchiveServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/ArchiveServlet.java
@@ -18,6 +18,7 @@
 import static javax.servlet.http.HttpServletResponse.SC_OK;
 
 import com.google.common.base.Optional;
+import com.google.common.base.Strings;
 
 import org.eclipse.jgit.api.ArchiveCommand;
 import org.eclipse.jgit.api.errors.GitAPIException;
@@ -81,11 +82,11 @@
     RevWalk rw = new RevWalk(repo);
     try {
       RevTree tree = rw.parseTree(rev.getId());
-      if (view.getPathPart() == null) {
+      if (Strings.isNullOrEmpty(view.getPathPart())) {
         return tree;
       }
       TreeWalk tw = TreeWalk.forPath(rw.getObjectReader(), view.getPathPart(), tree);
-      if (tw.getFileMode(0) != FileMode.TREE) {
+      if (tw == null || tw.getFileMode(0) != FileMode.TREE) {
         return ObjectId.zeroId();
       }
       return tw.getObjectId(0);
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/BlameServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/BlameServlet.java
index a18ca16..21ce0d5 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/BlameServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/BlameServlet.java
@@ -17,6 +17,7 @@
 import static com.google.common.base.Preconditions.checkNotNull;
 import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
 
+import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
@@ -95,8 +96,11 @@
   private static ObjectId resolveBlob(GitilesView view, RevWalk rw, RevCommit commit)
       throws IOException {
     try {
+      if (Strings.isNullOrEmpty(view.getPathPart())) {
+        return null;
+      }
       TreeWalk tw = TreeWalk.forPath(rw.getObjectReader(), view.getPathPart(), commit.getTree());
-      if ((tw.getRawMode(0) & FileMode.TYPE_FILE) == 0) {
+      if (tw == null || (tw.getRawMode(0) & FileMode.TYPE_FILE) == 0) {
         return null;
       }
       return tw.getObjectId(0);
