diff --git a/tree-walk.c b/tree-walk.c
index 74f4d710e8..f46ac155eb 100644
--- a/tree-walk.c
+++ b/tree-walk.c
@@ -47,7 +47,7 @@ static int decode_tree_entry(struct tree_desc *desc, const char *buf, unsigned l
/* Initialize the descriptor entry */
desc->entry.path = path;
- desc->entry.mode = (desc->flags & TREE_DESC_RAW_MODES) ? mode : canon_mode(mode);
+ desc->entry.mode = mode;
desc->entry.pathlen = len - 1;
oidread(&desc->entry.oid, (const unsigned char *)path + len);