diff --git a/MagickCore/blob.c b/MagickCore/blob.c
index 99936ac..a95c22d 100644
--- a/MagickCore/blob.c
+++ b/MagickCore/blob.c
@@ -264,8 +264,7 @@
     }
   for (i=0; i < length; i+=count)
   {
-    count=write(file,(const char *) blob+i,MagickMin(length-i,(size_t)
-      SSIZE_MAX));
+    count=write(file,(const char *) blob+i,MagickMin(length-i,SSIZE_MAX));
     if (count <= 0)
       {
         count=0;
@@ -1005,9 +1004,8 @@
       */
       offset=(MagickOffsetType) lseek(file,0,SEEK_SET);
       quantum=(size_t) MagickMaxBufferExtent;
-      if ((fstat(file,&file_stats) == 0) && (file_stats.st_size != 0))
-        quantum=(size_t) MagickMin((MagickSizeType) file_stats.st_size,
-          MagickMaxBufferExtent);
+      if ((fstat(file,&file_stats) == 0) && (file_stats.st_size > 0))
+        quantum=(size_t) MagickMin(file_stats.st_size,MagickMaxBufferExtent);
       blob=(unsigned char *) AcquireQuantumMemory(quantum,sizeof(*blob));
       for (i=0; blob != (unsigned char *) NULL; i+=count)
       {
@@ -1046,7 +1044,7 @@
       blob[*length]='\0';
       return(blob);
     }
-  *length=(size_t) MagickMin((MagickSizeType) offset,extent);
+  *length=(size_t) MagickMin(offset,extent);
   blob=(unsigned char *) NULL;
   if (~(*length) >= (MagickPathExtent-1))
     blob=(unsigned char *) AcquireQuantumMemory(*length+MagickPathExtent,
@@ -1069,8 +1067,7 @@
       (void) lseek(file,0,SEEK_SET);
       for (i=0; i < *length; i+=count)
       {
-        count=read(file,blob+i,(size_t) MagickMin(*length-i,(size_t)
-          SSIZE_MAX));
+        count=read(file,blob+i,(size_t) MagickMin(*length-i,SSIZE_MAX));
         if (count <= 0)
           {
             count=0;
@@ -1184,7 +1181,7 @@
       return(MagickFalse);
     }
   quantum=(size_t) MagickMaxBufferExtent;
-  if ((fstat(file,&file_stats) == 0) && (file_stats.st_size != 0))
+  if ((fstat(file,&file_stats) == 0) && (file_stats.st_size > 0))
     quantum=(size_t) MagickMin(file_stats.st_size,MagickMaxBufferExtent);
   blob=(unsigned char *) AcquireQuantumMemory(quantum,sizeof(*blob));
   if (blob == (unsigned char *) NULL)
@@ -1694,9 +1691,8 @@
       return(MagickFalse);
     }
   quantum=(size_t) MagickMaxBufferExtent;
-  if ((fstat(file,&file_stats) == 0) && (file_stats.st_size != 0))
-    quantum=(size_t) MagickMin((MagickSizeType) file_stats.st_size,
-      MagickMaxBufferExtent);
+  if ((fstat(file,&file_stats) == 0) && (file_stats.st_size > 0))
+    quantum=(size_t) MagickMin(file_stats.st_size,MagickMaxBufferExtent);
   buffer=(unsigned char *) AcquireQuantumMemory(quantum,sizeof(*buffer));
   if (buffer == (unsigned char *) NULL)
     {
@@ -1707,7 +1703,7 @@
     }
   length=0;
   p=(const unsigned char *) ReadBlobStream(image,quantum,buffer,&count);
-  for (i=0; count > 0; p=(const unsigned char *) ReadBlobStream(image,quantum,buffer,&count))
+  for (i=0; count > 0; )
   {
     length=(size_t) count;
     for (i=0; i < length; i+=count)
@@ -1722,6 +1718,7 @@
     }
     if (i < length)
       break;
+    p=(const unsigned char *) ReadBlobStream(image,quantum,buffer,&count);
   }
   if (LocaleCompare(filename,"-") != 0)
     file=close(file);
@@ -2004,7 +2001,7 @@
       return(MagickFalse);
     }
   quantum=(size_t) MagickMaxBufferExtent;
-  if ((fstat(file,&file_stats) == 0) && (file_stats.st_size != 0))
+  if ((fstat(file,&file_stats) == 0) && (file_stats.st_size > 0))
     quantum=(size_t) MagickMin(file_stats.st_size,MagickMaxBufferExtent);
   buffer=(unsigned char *) AcquireQuantumMemory(quantum,sizeof(*buffer));
   if (buffer == (unsigned char *) NULL)
@@ -2949,8 +2946,7 @@
           break;
         }
       p=image->blob->data+image->blob->offset;
-      count=(ssize_t) MagickMin((MagickOffsetType) length,(MagickOffsetType)
-        image->blob->length-image->blob->offset);
+      count=(ssize_t) MagickMin(length,image->blob->length-image->blob->offset);
       image->blob->offset+=count;
       if (count != (ssize_t) length)
         image->blob->eof=MagickTrue;
@@ -3564,8 +3560,7 @@
       return(data);
     }
   data=image->blob->data+image->blob->offset;
-  *count=(ssize_t) MagickMin((MagickOffsetType) length,(MagickOffsetType)
-    image->blob->length-image->blob->offset);
+  *count=(ssize_t) MagickMin(length,image->blob->length-image->blob->offset);
   image->blob->offset+=(*count);
   if (*count != (ssize_t) length)
     image->blob->eof=MagickTrue;
diff --git a/MagickCore/blob.h b/MagickCore/blob.h
index 3d48aa0..9f85fb8 100644
--- a/MagickCore/blob.h
+++ b/MagickCore/blob.h
@@ -25,7 +25,7 @@
 extern "C" {
 #endif
 
-#define MagickMaxBufferExtent  8192
+#define MagickMaxBufferExtent  81920
 
 typedef enum
 {
diff --git a/MagickCore/cache.c b/MagickCore/cache.c
index aacbf8b..27cb733 100644
--- a/MagickCore/cache.c
+++ b/MagickCore/cache.c
@@ -3261,10 +3261,10 @@
   {
 #if !defined(MAGICKCORE_HAVE_PWRITE)
     count=write(cache_info->file,buffer+i,(size_t) MagickMin(length-i,
-      (MagickSizeType) SSIZE_MAX));
+      SSIZE_MAX));
 #else
     count=pwrite(cache_info->file,buffer+i,(size_t) MagickMin(length-i,
-      (MagickSizeType) SSIZE_MAX),(off_t) (offset+i));
+      SSIZE_MAX),(off_t) (offset+i));
 #endif
     if (count <= 0)
       {
@@ -4024,10 +4024,10 @@
   {
 #if !defined(MAGICKCORE_HAVE_PREAD)
     count=read(cache_info->file,buffer+i,(size_t) MagickMin(length-i,
-      (MagickSizeType) SSIZE_MAX));
+      SSIZE_MAX));
 #else
     count=pread(cache_info->file,buffer+i,(size_t) MagickMin(length-i,
-      (MagickSizeType) SSIZE_MAX),(off_t) (offset+i));
+      SSIZE_MAX),(off_t) (offset+i));
 #endif
     if (count <= 0)
       {
diff --git a/MagickCore/delegate.c b/MagickCore/delegate.c
index 359a6b1..9085566 100644
--- a/MagickCore/delegate.c
+++ b/MagickCore/delegate.c
@@ -1076,7 +1076,7 @@
       return(MagickFalse);
     }
   quantum=(size_t) MagickMaxBufferExtent;
-  if ((fstat(source_file,&attributes) == 0) && (attributes.st_size != 0))
+  if ((fstat(source_file,&attributes) == 0) && (attributes.st_size > 0))
     quantum=MagickMin((size_t) attributes.st_size,MagickMaxBufferExtent);
   buffer=(unsigned char *) AcquireQuantumMemory(quantum,sizeof(*buffer));
   if (buffer == (unsigned char *) NULL)
diff --git a/MagickCore/utility.c b/MagickCore/utility.c
index 480dd92..6ab68b0 100644
--- a/MagickCore/utility.c
+++ b/MagickCore/utility.c
@@ -205,9 +205,8 @@
       return(MagickFalse);
     }
   quantum=(size_t) MagickMaxBufferExtent;
-  if ((fstat(source_file,&attributes) == 0) && (attributes.st_size != 0))
-    quantum=(size_t) MagickMin((size_t) attributes.st_size,
-      MagickMaxBufferExtent);
+  if ((fstat(source_file,&attributes) == 0) && (attributes.st_size > 0))
+    quantum=(size_t) MagickMin(attributes.st_size,MagickMaxBufferExtent);
   buffer=(unsigned char *) AcquireQuantumMemory(quantum,sizeof(*buffer));
   if (buffer == (unsigned char *) NULL)
     {
@@ -1853,9 +1852,8 @@
     Shred the file.
   */
   quantum=(size_t) MagickMaxBufferExtent;
-  if ((fstat(file,&file_stats) == 0) && (file_stats.st_size != 0))
-    quantum=(size_t) MagickMin((MagickSizeType) file_stats.st_size,
-      MagickMaxBufferExtent);
+  if ((fstat(file,&file_stats) == 0) && (file_stats.st_size > 0))
+    quantum=(size_t) MagickMin(file_stats.st_size,MagickMaxBufferExtent);
   length=(MagickSizeType) file_stats.st_size;
   for (i=0; i < (ssize_t) StringToInteger(passes); i++)
   {
diff --git a/MagickCore/xml-tree.c b/MagickCore/xml-tree.c
index c956b00..d189070 100644
--- a/MagickCore/xml-tree.c
+++ b/MagickCore/xml-tree.c
@@ -642,9 +642,8 @@
       */
       offset=(MagickOffsetType) lseek(file,0,SEEK_SET);
       quantum=(size_t) MagickMaxBufferExtent;
-      if ((fstat(file,&file_stats) == 0) && (file_stats.st_size != 0))
-        quantum=(size_t) MagickMin((MagickSizeType) file_stats.st_size,
-          MagickMaxBufferExtent);
+      if ((fstat(file,&file_stats) == 0) && (file_stats.st_size > 0))
+        quantum=(size_t) MagickMin(file_stats.st_size,MagickMaxBufferExtent);
       xml=(char *) AcquireQuantumMemory(quantum,sizeof(*xml));
       for (i=0; xml != (char *) NULL; i+=count)
       {
@@ -677,7 +676,7 @@
       xml[length]='\0';
       return(xml);
     }
-  length=(size_t) MagickMin((MagickSizeType) offset,extent);
+  length=(size_t) MagickMin(offset,extent);
   xml=(char *) NULL;
   if (~length >= (MagickPathExtent-1))
     xml=(char *) AcquireQuantumMemory(length+MagickPathExtent,sizeof(*xml));
@@ -697,8 +696,7 @@
       (void) lseek(file,0,SEEK_SET);
       for (i=0; i < length; i+=count)
       {
-        count=read(file,xml+i,(size_t) MagickMin(length-i,(MagickSizeType)
-          SSIZE_MAX));
+        count=read(file,xml+i,(size_t) MagickMin(length-i,SSIZE_MAX));
         if (count <= 0)
           {
             count=0;