diff --git a/bindings/java/src/org/sleuthkit/datamodel/Pool.java b/bindings/java/src/org/sleuthkit/datamodel/Pool.java
index 2a6e712e73b78ab596db12640e3b52d01e6f2c2e..261900c0f2b07c49103f4d995c622fc72e46c705 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/Pool.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/Pool.java
@@ -114,7 +114,13 @@ private long getPoolOffset(Image image) throws TskCoreException {
 		} else if (this.getParent() instanceof Volume) {
 			// If the parent is a volume, then the pool starts at the volume offset
 			Volume parent = (Volume)this.getParent();
-			return parent.getStart() * image.getSsize(); // Offset needs to be in bytes
+			if (parent.getParent() instanceof VolumeSystem) {
+				// uses block size from parent volume system
+				return parent.getStart() * ((VolumeSystem) parent.getParent()).getBlockSize(); // Offset needs to be in bytes
+			} else {
+				// uses sector size from from parent image (old behavior fallback)
+				return parent.getStart() * image.getSsize(); // Offset needs to be in bytes
+			}
 		}
 		throw new TskCoreException("Pool with object ID " + this.getId() + " does not have Image or Volume parent");
 	}