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)