diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java
index 69045859300c064a71d49229be8889c97545674b..b3acf518cf239cdacd63d2e57656fd7f6003434d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java
@@ -371,6 +371,7 @@ public String getPathString() {
 	public void dispose() {
 		super.dispose();
 		pendingObjects = new BlockObjQueue();
+		treeWalk = new CanonicalTreeParser();
 		nextSubtree = null;
 		currentTree = null;
 	}
@@ -379,6 +380,7 @@ public void dispose() {
 	protected void reset(final int retainFlags) {
 		super.reset(retainFlags);
 		pendingObjects = new BlockObjQueue();
+		treeWalk = new CanonicalTreeParser();
 		nextSubtree = null;
 	}