diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/GitIndex.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/GitIndex.java
index d5cab0e4c6a6ffbb45a14f7c495d04bba84bebe5..5da33fd6bbcb15cdbb57f5e9bd49dbd13e993c0e 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/GitIndex.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/GitIndex.java
@@ -353,7 +353,8 @@ private boolean config_filemode() {
 		if (filemode != null)
 			return filemode.booleanValue();
 		RepositoryConfig config = db.getConfig();
-		return config.getBoolean("core", null, "filemode", true);
+		filemode = Boolean.valueOf(config.getBoolean("core", null, "filemode", true));
+		return filemode.booleanValue();
 	}
 
 	/** An index entry */