diff --git a/bindings/java/src/org/sleuthkit/datamodel/AbstractFile.java b/bindings/java/src/org/sleuthkit/datamodel/AbstractFile.java
index 5f3bde6d9dc6cc74a4c1a34d47de0b440a598383..e18c133e9cf47aaa87c3844b7043fa61f204afa3 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/AbstractFile.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/AbstractFile.java
@@ -651,7 +651,9 @@ public static String createNonUniquePath(String uniquePath) {
 		// name, if they exist).
 		StringBuilder strbuf = new StringBuilder();
 		for (; index < pathSegments.length; ++index) {
-			strbuf.append("/").append(pathSegments[index]);
+			if (!pathSegments[index].isEmpty()) {
+				strbuf.append("/").append(pathSegments[index]);
+			}
 		}
 
 		return strbuf.toString();
diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
index bed958fcab04dc417017bc3e57b9d65593ea6d78..afe57e1024a41788e19386b2c24e566724159d5d 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
@@ -5750,7 +5750,17 @@ public Report addReport(String localPath, String sourceModuleName, String report
 		// or one of its subdirectories.
 		String relativePath = ""; //NON-NLS
 		try {
-			relativePath = new File(getDbDirPath()).toURI().relativize(new File(localPath).toURI()).getPath();
+			/*
+			 * Note: The following call to .relativize() may be dangerous in
+			 * case-sensitive operating systems and should be looked at. For
+			 * now, we are simply relativizing the paths as all lower case, then
+			 * using the length of the result to pull out the appropriate number
+			 * of characters from the localPath String.
+			 */
+			String casePathLower = getDbDirPath().toLowerCase();
+			String localPathLower = localPath.toLowerCase();
+			int length = new File(casePathLower).toURI().relativize(new File(localPathLower).toURI()).getPath().length();
+			relativePath = new File(localPath.substring(localPathLower.length() - length)).getPath();
 		} catch (IllegalArgumentException ex) {
 			String errorMessage = String.format("Local path %s not in the database directory or one of its subdirectories", localPath);
 			throw new TskCoreException(errorMessage, ex);