diff --git a/bindings/java/jni/dataModel_SleuthkitJNI.cpp b/bindings/java/jni/dataModel_SleuthkitJNI.cpp
index d86fc715757f0718213e7ead92280eb8895018b8..5ed1390a50f57317174ee518692d7f85f2b70008 100644
--- a/bindings/java/jni/dataModel_SleuthkitJNI.cpp
+++ b/bindings/java/jni/dataModel_SleuthkitJNI.cpp
@@ -2167,16 +2167,16 @@ JNIEXPORT jboolean JNICALL Java_org_sleuthkit_datamodel_SleuthkitJNI_isImageSupp
  * @param obj the java object this was called from
  * @param a_img_info the image info pointer
  */
-JNIEXPORT void JNICALL Java_org_sleuthkit_datamodel_SleuthkitJNI_finishImageWriterNat
+JNIEXPORT jint JNICALL Java_org_sleuthkit_datamodel_SleuthkitJNI_finishImageWriterNat
 (JNIEnv * env, jclass obj, jlong a_img_info) {
     // Set up the TSK_IMG_INFO object
     TSK_IMG_INFO *img_info = castImgInfo(env, a_img_info);
     IMG_RAW_INFO *raw_info = (IMG_RAW_INFO*)img_info;
 
     if (raw_info->img_writer != NULL) {
-        raw_info->img_writer->finish_image(raw_info->img_writer);
+        return raw_info->img_writer->finish_image(raw_info->img_writer);
     }
-
+    return -1;
 }
 
 /*
diff --git a/bindings/java/jni/dataModel_SleuthkitJNI.h b/bindings/java/jni/dataModel_SleuthkitJNI.h
index 4fc585d766fb62acc06d49f42016dbed06d6b633..37200d99218948fed5f972a5913414debeabf798 100644
--- a/bindings/java/jni/dataModel_SleuthkitJNI.h
+++ b/bindings/java/jni/dataModel_SleuthkitJNI.h
@@ -410,9 +410,9 @@ JNIEXPORT jboolean JNICALL Java_org_sleuthkit_datamodel_SleuthkitJNI_isImageSupp
 /*
  * Class:     org_sleuthkit_datamodel_SleuthkitJNI
  * Method:    finishImageWriterNat
- * Signature: (J)V
+ * Signature: (J)I
  */
-JNIEXPORT void JNICALL Java_org_sleuthkit_datamodel_SleuthkitJNI_finishImageWriterNat
+JNIEXPORT jint JNICALL Java_org_sleuthkit_datamodel_SleuthkitJNI_finishImageWriterNat
   (JNIEnv *, jclass, jlong);
 
 /*
diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
index 86c95eb659546c955e76995933c702353f8725cf..c01e2db19142481f1eb3e2d802cf3ebdac76367c 100755
--- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
@@ -1226,13 +1226,14 @@ public static SleuthkitCase newCase(String databaseName, CaseDbConnectionInfo in
 	 *                        unallocated space in the image.
 	 * @param noFatFsOrphans  Set to true to skip processing orphan files of FAT
 	 *                        file systems.
-     * @param imageWriterPath  Path that a copy of the image should be written to.
-     *                         Use empty string to disable image writing
+     * @param imageWriterSettings  Settings for image writer from the local disk panel.
+     *                             Use null to disable image writing
 	 *
 	 * @return Object that encapsulates control of adding an image via the
 	 *         SleuthKit native code layer.
 	 */
-	public AddImageProcess makeAddImageProcess(String timezone, boolean addUnallocSpace, boolean noFatFsOrphans, String imageWriterPath) {
+	public AddImageProcess makeAddImageProcess(String timezone, boolean addUnallocSpace, boolean noFatFsOrphans,
+			String imageWriterPath) {
 		return this.caseHandle.initAddImageProcess(timezone, addUnallocSpace, noFatFsOrphans, imageWriterPath);
 	}
 
@@ -6821,6 +6822,34 @@ public List<BlackboardArtifactTag> getBlackboardArtifactTagsByArtifact(Blackboar
 			releaseSharedLock();
 		}
 	}
+	
+	/**
+	 * put stuff here!!!!!
+	 * @param newPath
+	 * @param objectId 
+	 * @throws TskCoreException
+	 */
+	public void updateImagePath(String newPath, long objectId) throws TskCoreException{
+		System.out.println("\n#### Want to update path for " + objectId + " to " + newPath);
+		CaseDbConnection connection = connections.getConnection();
+		acquireSharedLock();
+		//ResultSet resultSet = null;
+		try {
+			// UPDATE tsk_image_names SET name = ? WHERE obj_id = ?
+			PreparedStatement statement = connection.getPreparedStatement(PREPARED_STATEMENT.UPDATE_IMAGE_PATH);
+			statement.clearParameters();
+			statement.setString(1, newPath);
+			statement.setLong(2, objectId);
+			connection.executeUpdate(statement);
+			//connection.commitTransaction();
+		} catch (SQLException ex) {
+			throw new TskCoreException("Error updating image path in database for object " + objectId, ex);
+		} finally {
+			//closeResultSet(resultSet);
+			connection.close();
+			releaseSharedLock();
+		}
+	}
 
 	/**
 	 * Inserts a row into the reports table in the case database.
@@ -7334,7 +7363,8 @@ private enum PREPARED_STATEMENT {
 		INSERT_INGEST_JOB("INSERT INTO ingest_jobs (obj_id, host_name, start_date_time, end_date_time, status_id, settings_dir) VALUES (?, ?, ?, ?, ?, ?)"), //NON-NLS
 		INSERT_INGEST_MODULE("INSERT INTO ingest_modules (display_name, unique_name, type_id, version) VALUES(?, ?, ?, ?)"), //NON-NLS
 		SELECT_ATTR_BY_VALUE_BYTE("SELECT source FROM blackboard_attributes WHERE artifact_id = ? AND attribute_type_id = ? AND value_type = 4 AND value_byte = ?"), //NON-NLS
-		UPDATE_ATTR_BY_VALUE_BYTE("UPDATE blackboard_attributes SET source = ? WHERE artifact_id = ? AND attribute_type_id = ? AND value_type = 4 AND value_byte = ?"); //NON-NLS
+		UPDATE_ATTR_BY_VALUE_BYTE("UPDATE blackboard_attributes SET source = ? WHERE artifact_id = ? AND attribute_type_id = ? AND value_type = 4 AND value_byte = ?"), //NON-NLS
+		UPDATE_IMAGE_PATH("UPDATE tsk_image_names SET name = ? WHERE obj_id = ?"); // NON-NLS 
 
 		private final String sql;
 
@@ -8543,10 +8573,10 @@ public LocalFile addLocalFile(String fileName, String localPath,
 	 *
 	 * @return Object that encapsulates control of adding an image via the
 	 *         SleuthKit native code layer
-	 * @Deprecated Use the newer version with explicit image writer path parameter
+	 * @Deprecated Use the newer version with explicit image writer settings parameter
 	 */
 	public AddImageProcess makeAddImageProcess(String timezone, boolean addUnallocSpace, boolean noFatFsOrphans) {
-		return this.caseHandle.initAddImageProcess(timezone, addUnallocSpace, noFatFsOrphans, "");
+		return this.caseHandle.initAddImageProcess(timezone, addUnallocSpace, noFatFsOrphans, null);
 	}
 
 }
diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java
index 11f929ef9efec275c6ce343f96876fdab0786d7d..7248057dc1db88619f68c23719c19dfcd37a3563 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java
@@ -983,8 +983,8 @@ private static String timezoneLongToShort(String timezoneLongForm) {
 	 * @throws TskCoreException exception thrown if critical error occurs within
 	 *                          TSK
 	 */
-	public static void finishImageWriter(long imgHandle) throws TskCoreException {
-		finishImageWriterNat(imgHandle);
+	public static int finishImageWriter(long imgHandle) throws TskCoreException {
+		return finishImageWriterNat(imgHandle);
 	}
 	
 	/**
@@ -1123,7 +1123,7 @@ public static boolean isImageSupported(String imagePath){
 	
 	private static native boolean isImageSupportedNat(String imagePath);
 	
-	private static native void finishImageWriterNat(long a_img_info);
+	private static native int finishImageWriterNat(long a_img_info);
 	
 	private static native int getFinishImageProgressNat(long a_img_info);