diff --git a/coders/jp2.c b/coders/jp2.c
index 7fe5396..ec4aac1 100644
--- a/coders/jp2.c
+++ b/coders/jp2.c
@@ -256,9 +256,7 @@
     *image;
 
   image=(Image *) context;
-  if (DiscardBlobBytes(image,(size_t) length) == MagickFalse)
-    return(0);
-  return(length);
+  return(SeekBlob(image,offset,SEEK_CUR) < 0 ? 0 : offset);
 }
 
 static void JP2WarningHandler(const char *message,void *client_data)