diff --git a/MagickCore/blob.c b/MagickCore/blob.c
index 00f7204..7a1822f 100644
--- a/MagickCore/blob.c
+++ b/MagickCore/blob.c
@@ -2517,7 +2517,8 @@
 #endif
             (void) ResetMagickMemory(magick,0,sizeof(magick));
             count=fread(magick,1,sizeof(magick),image->blob->file_info.file);
-            (void) rewind(image->blob->file_info.file);
+            (void) fseek(image->blob->file_info.file,(off_t) -count,SEEK_CUR);
+            (void) fflush(image->blob->file_info.file);
             (void) LogMagickEvent(BlobEvent,GetMagickModule(),
                "  read %.20g magic header bytes",(double) count);
 #if defined(MAGICKCORE_ZLIB_DELEGATE)