diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java
index fd74098..ab2027c 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java
@@ -631,6 +631,11 @@ protected File discoverGitPrefix() {
 			public boolean canExecute(File f) {
 				return true;
 			}
+
+			@Override
+			public boolean isCaseSensitive() {
+				return false;
+			}
 		};
 
 		Git git = Git.open(db.getDirectory(), executableFs);
@@ -671,6 +676,11 @@ protected File discoverGitPrefix() {
 			public boolean canExecute(File f) {
 				return false;
 			}
+
+			@Override
+			public boolean isCaseSensitive() {
+				return false;
+			}
 		};
 
 		config = db.getConfig();
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitCommandTest.java
index e558d61..20d62f5 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitCommandTest.java
@@ -109,6 +109,11 @@ protected File discoverGitPrefix() {
 			public boolean canExecute(File f) {
 				return true;
 			}
+
+			@Override
+			public boolean isCaseSensitive() {
+				return true;
+			}
 		};
 
 		Git git = Git.open(db.getDirectory(), executableFs);
@@ -149,6 +154,11 @@ protected File discoverGitPrefix() {
 			public boolean canExecute(File f) {
 				return false;
 			}
+
+			@Override
+			public boolean isCaseSensitive() {
+				return true;
+			}
 		};
 
 		config = db.getConfig();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
index 0dfa511..535d1cd 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
@@ -136,6 +136,13 @@ protected FS(FS src) {
 	public abstract boolean supportsExecute();
 
 	/**
+	 * Is this file system case sensitive
+	 *
+	 * @return true if this implementation is case sensitive
+	 */
+	public abstract boolean isCaseSensitive();
+
+	/**
 	 * Determine if the file is executable (or not).
 	 * <p>
 	 * Not all platforms and JREs support executable flags on files. If the
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java
index f04bb6f..36d3b94 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java
@@ -86,6 +86,14 @@ protected File discoverGitPrefix() {
 	}
 
 	@Override
+	public boolean isCaseSensitive() {
+		if (isMacOS())
+			return false;
+		else
+			return true;
+	}
+
+	@Override
 	public ProcessBuilder runInShell(String cmd, String[] args) {
 		List<String> argv = new ArrayList<String>(4 + args.length);
 		argv.add("sh");
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java
index 58f7fb4..3b67044 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java
@@ -53,6 +53,7 @@
 import java.util.List;
 
 class FS_Win32 extends FS {
+
 	static boolean isWin32() {
 		final String osDotName = AccessController
 				.doPrivileged(new PrivilegedAction<String>() {
@@ -89,6 +90,11 @@ public boolean setExecute(final File f, final boolean canExec) {
 	}
 
 	@Override
+	public boolean isCaseSensitive() {
+		return false;
+	}
+
+	@Override
 	public boolean retryFailedLockFileCommit() {
 		return true;
 	}
