diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/CoreConfig.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/CoreConfig.java
index 9fa5d75..49602a7 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/CoreConfig.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/CoreConfig.java
@@ -163,8 +163,6 @@ public enum TrustLooseRefStat {
 
 	private final int packIndexVersion;
 
-	private final LogRefUpdates logAllRefUpdates;
-
 	private final String excludesfile;
 
 	private final String attributesfile;
@@ -205,9 +203,6 @@ private CoreConfig(Config rc) {
 				ConfigConstants.CONFIG_KEY_COMPRESSION, DEFAULT_COMPRESSION);
 		packIndexVersion = rc.getInt(ConfigConstants.CONFIG_PACK_SECTION,
 				ConfigConstants.CONFIG_KEY_INDEXVERSION, 2);
-		logAllRefUpdates = rc.getEnum(ConfigConstants.CONFIG_CORE_SECTION, null,
-				ConfigConstants.CONFIG_KEY_LOGALLREFUPDATES,
-				LogRefUpdates.TRUE);
 		excludesfile = rc.getString(ConfigConstants.CONFIG_CORE_SECTION, null,
 				ConfigConstants.CONFIG_KEY_EXCLUDESFILE);
 		attributesfile = rc.getString(ConfigConstants.CONFIG_CORE_SECTION,
@@ -236,20 +231,6 @@ public int getPackIndexVersion() {
 	}
 
 	/**
-	 * Whether to log all refUpdates
-	 *
-	 * @return whether to log all refUpdates
-	 * @deprecated since 5.6; default value depends on whether the repository is
-	 *             bare. Use
-	 *             {@link Config#getEnum(String, String, String, Enum)}
-	 *             directly.
-	 */
-	@Deprecated
-	public boolean isLogAllRefUpdates() {
-		return !LogRefUpdates.FALSE.equals(logAllRefUpdates);
-	}
-
-	/**
 	 * Get path of excludesfile
 	 *
 	 * @return path of excludesfile
