diff --git a/tsk/img/img_open.c b/tsk/img/img_open.c
index 51c4492b865ba7ed4a7c7c477fec3e8529d98adc..f4a570b6713ebdf6d2292e088d380de99591e275 100644
--- a/tsk/img/img_open.c
+++ b/tsk/img/img_open.c
@@ -418,3 +418,52 @@ tsk_img_close(TSK_IMG_INFO * a_img_info)
     }
     a_img_info->close(a_img_info);
 }
+
+
+/**
+ * \internal
+ * Return the list of names for this open images. 
+ * This is sort of a hack implementation and is internal only at this
+ * point.  Returns pointers into the IMG_INFO structs and should not be
+ * modified or freed.
+ * @param a_img_info Image to pull names from
+ * @param a_num_imgs Will contain number of elements in the return array.
+ * @returns List of names.
+ */
+const TSK_TCHAR **
+tsk_img_get_names(TSK_IMG_INFO *a_img_info, int *a_num_imgs) 
+{
+    if (a_img_info == NULL) {
+        tsk_error_reset();
+        tsk_error_set_errno(TSK_ERR_IMG_ARG);
+        tsk_error_set_errstr("tsk_img_get_names: IMG_INFO is NULL");
+        return NULL;
+    }
+    if (a_num_imgs == NULL) {
+        tsk_error_reset();
+        tsk_error_set_errno(TSK_ERR_IMG_ARG);
+        tsk_error_set_errstr("tsk_img_get_names: a_num_imgs is NULL");
+        return NULL;
+    }
+    *a_num_imgs = 0;
+
+    switch (a_img_info->itype) {
+        case TSK_IMG_TYPE_RAW:
+            {
+                IMG_RAW_INFO *raw_info = (IMG_RAW_INFO *)a_img_info;
+                *a_num_imgs = raw_info->num_img;
+                return raw_info->images;
+            }
+#if HAVE_LIBEWF
+        case TSK_IMG_TYPE_EWF_EWF:
+            {
+                IMG_EWF_INFO *ewf_info = (IMG_EWF_INFO *)a_img_info;
+                *a_num_imgs = ewf_info->num_imgs;
+                return ewf_info->images;
+            }
+            break;
+#endif
+        default:
+            return NULL;
+    }
+}
diff --git a/tsk/img/tsk_img_i.h b/tsk/img/tsk_img_i.h
index ee8586bd5030e9a8882923d3a2bc94962ae7b848..6cd1a99a8e20b9b57fd1478e39a75dfa2aa7535c 100644
--- a/tsk/img/tsk_img_i.h
+++ b/tsk/img/tsk_img_i.h
@@ -40,6 +40,9 @@ extern void tsk_img_free(void *);
 extern TSK_TCHAR **tsk_img_findFiles(const TSK_TCHAR * a_startingName,
     int *a_numFound);
 
+extern const TSK_TCHAR **
+    tsk_img_get_names(TSK_IMG_INFO *a_img_info, int *a_num_imgs); 
+
 #ifdef __cplusplus
 }
 #endif