register storage class is deprecated
diff --git a/MagickCore/accelerate.c b/MagickCore/accelerate.c
index 334e3ff..fbdfaa4 100644
--- a/MagickCore/accelerate.c
+++ b/MagickCore/accelerate.c
@@ -330,7 +330,7 @@
     colorspace,
     method;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1000,7 +1000,7 @@
   PixelPacket
     *stretch_map;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2321,7 +2321,7 @@
   PixelPacket
     *equalize_map;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3398,7 +3398,7 @@
   MagickSizeType
     length;
 
-  register ssize_t
+  ssize_t
     i;
 
   void
diff --git a/MagickCore/animate.c b/MagickCore/animate.c
index 94128e0..edbe873 100644
--- a/MagickCore/animate.c
+++ b/MagickCore/animate.c
@@ -404,7 +404,7 @@
       int
         number_files;
 
-      register int
+      int
         i;
 
       static char
@@ -753,7 +753,7 @@
   RectangleInfo
     geometry_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1340,10 +1340,10 @@
   RectangleInfo
     geometry_info;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1436,7 +1436,7 @@
     }
   else
     {
-      register Image
+      Image
         *p;
 
       /*
diff --git a/MagickCore/annotate.c b/MagickCore/annotate.c
index 3de87a6..ee99245 100644
--- a/MagickCore/annotate.c
+++ b/MagickCore/annotate.c
@@ -249,7 +249,7 @@
   RectangleInfo
     geometry;
 
-  register ssize_t
+  ssize_t
     i;
 
   TypeMetric
@@ -595,12 +595,12 @@
   MagickBooleanType
     status;
 
-  register char
+  char
     *p,
     *q,
     *s;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -734,7 +734,7 @@
   MagickSizeType
     size;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -985,7 +985,7 @@
           int
             number_families;
 
-          register ssize_t
+          ssize_t
             i;
 
           /*
@@ -1104,7 +1104,7 @@
   raqm_glyph_t
     *glyphs;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1182,7 +1182,7 @@
   FT_Error
     ft_status;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1370,10 +1370,10 @@
     point,
     resolution;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1682,7 +1682,7 @@
         MagickBooleanType
           transparent_fill;
 
-        register unsigned char
+        unsigned char
           *r;
 
         /*
@@ -1707,10 +1707,10 @@
           PixelInfo
             fill_color;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           ssize_t
@@ -1901,10 +1901,10 @@
   char
     *destination;
 
-  register char
+  char
     *q;
 
-  register const char
+  const char
     *p;
 
   size_t
@@ -1969,7 +1969,7 @@
     point,
     resolution;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2138,10 +2138,10 @@
       annotate_view=AcquireAuthenticCacheView(annotate_image,exception);
       for (y=0; y < (ssize_t) annotate_image->rows; y++)
       {
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         q=GetCacheViewAuthenticPixels(annotate_view,0,y,annotate_image->columns,
diff --git a/MagickCore/artifact.c b/MagickCore/artifact.c
index 91a572c..b9e1667 100644
--- a/MagickCore/artifact.c
+++ b/MagickCore/artifact.c
@@ -155,7 +155,7 @@
     key[MagickPathExtent],
     value[MagickPathExtent];
 
-  register char
+  char
     *p;
 
   assert(image != (Image *) NULL);
@@ -273,7 +273,7 @@
 MagickExport const char *GetImageArtifact(const Image *image,
   const char *artifact)
 {
-  register const char
+  const char
     *p;
 
   assert(image != (Image *) NULL);
diff --git a/MagickCore/attribute.c b/MagickCore/attribute.c
index 0f081ae..3e1e178 100644
--- a/MagickCore/attribute.c
+++ b/MagickCore/attribute.c
@@ -157,7 +157,7 @@
   RectangleInfo
     edge_geometry;
 
-  register const Quantum
+  const Quantum
     *p;
 
   ssize_t
@@ -216,7 +216,7 @@
   edge_view=AcquireVirtualCacheView(edge_image,exception);
   for (y=0; y < (ssize_t) edge_image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(edge_view,0,y,edge_image->columns,1,exception);
@@ -405,7 +405,7 @@
   RectangleInfo
     bounds;
 
-  register const Quantum
+  const Quantum
     *p;
 
   ssize_t
@@ -455,10 +455,10 @@
     RectangleInfo
       bounding_box;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -567,7 +567,7 @@
     background[4],
     edge_background;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -596,7 +596,7 @@
     RectangleInfo
       edge_geometry;
 
-    register const Quantum
+    const Quantum
       *p;
 
     ssize_t
@@ -650,7 +650,7 @@
     edge_view=AcquireVirtualCacheView(edge_image,exception);
     for (y=0; y < (ssize_t) edge_image->rows; y++)
     {
-      register ssize_t
+      ssize_t
         x;
 
       p=GetCacheViewVirtualPixels(edge_view,0,y,edge_image->columns,1,
@@ -684,7 +684,7 @@
   PointInfo
     **chain;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -768,10 +768,10 @@
   n=0;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -844,7 +844,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -953,10 +953,10 @@
         const int
           id = GetOpenMPThreadId();
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -966,7 +966,7 @@
           continue;
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1005,10 +1005,10 @@
     const int
       id = GetOpenMPThreadId();
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1018,7 +1018,7 @@
       continue;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1167,7 +1167,7 @@
     *bounding_box,
     *vertices;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1207,7 +1207,7 @@
       min_diameter = -1.0,
       min_projection = 0.0;
 
-    register ssize_t
+    ssize_t
       j,
       k;
 
@@ -1523,10 +1523,10 @@
   ImageType
     type;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -1605,10 +1605,10 @@
   MagickBooleanType
     bilevel;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register const Quantum
+  const Quantum
     *p;
 
   ssize_t
@@ -1807,10 +1807,10 @@
   CacheView
     *image_view;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -1900,7 +1900,7 @@
   range=GetQuantumRange(depth);
   if (image->storage_class == PseudoClass)
     {
-      register ssize_t
+      ssize_t
         i;
 
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
@@ -1931,7 +1931,7 @@
       Quantum
         *depth_map;
 
-      register ssize_t
+      ssize_t
         i;
 
       /*
@@ -1949,10 +1949,10 @@
 #endif
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -1966,7 +1966,7 @@
           }
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2007,10 +2007,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -2023,7 +2023,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
diff --git a/MagickCore/blob.c b/MagickCore/blob.c
index df0eb25..64441ee 100644
--- a/MagickCore/blob.c
+++ b/MagickCore/blob.c
@@ -350,7 +350,7 @@
   int
     file;
 
-  register size_t
+  size_t
     i;
 
   ssize_t
@@ -1135,7 +1135,7 @@
 MagickExport MagickBooleanType DiscardBlobBytes(Image *image,
   const MagickSizeType length)
 {
-  register MagickOffsetType
+  MagickOffsetType
     i;
 
   size_t
@@ -1402,7 +1402,7 @@
   MagickOffsetType
     offset;
 
-  register size_t
+  size_t
     i;
 
   ssize_t
@@ -1586,7 +1586,7 @@
   MagickSizeType
     extent;
 
-  register unsigned char
+  unsigned char
     *magick_restrict q;
 
   assert(image->blob != (BlobInfo *) NULL);
@@ -2302,10 +2302,10 @@
   int
     file;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register size_t
+  size_t
     i;
 
   size_t
@@ -2730,7 +2730,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3094,7 +3094,7 @@
   int
     c;
 
-  register unsigned char
+  unsigned char
     *p,
     *q;
 
@@ -3144,7 +3144,7 @@
   int
     c;
 
-  register unsigned char
+  unsigned char
     *q;
 
   assert(p != (unsigned char *) NULL);
@@ -3731,7 +3731,7 @@
   int
     c;
 
-  register unsigned char
+  unsigned char
     *q;
 
   ssize_t
@@ -3812,7 +3812,7 @@
       {
         default:
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) length; i+=count)
@@ -3880,7 +3880,7 @@
       int
         status;
 
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i+=count)
@@ -3906,7 +3906,7 @@
       break;
     case BlobStream:
     {
-      register const unsigned char
+      const unsigned char
         *p;
 
       if (blob_info->offset >= (MagickOffsetType) blob_info->length)
@@ -3961,7 +3961,7 @@
   BlobInfo
     *magick_restrict blob_info;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
   unsigned char
@@ -4105,7 +4105,7 @@
 */
 MagickExport unsigned int ReadBlobLong(Image *image)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
   ssize_t
@@ -4166,7 +4166,7 @@
   MagickSizeType
     value;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
   ssize_t
@@ -4229,10 +4229,10 @@
 */
 MagickExport unsigned short ReadBlobShort(Image *image)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned short
+  unsigned short
     value;
 
   ssize_t
@@ -4283,10 +4283,10 @@
 */
 MagickExport unsigned int ReadBlobLSBLong(Image *image)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned int
+  unsigned int
     value;
 
   ssize_t
@@ -4371,10 +4371,10 @@
 */
 MagickExport unsigned short ReadBlobLSBShort(Image *image)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned short
+  unsigned short
     value;
 
   ssize_t
@@ -4457,10 +4457,10 @@
 */
 MagickExport unsigned int ReadBlobMSBLong(Image *image)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned int
+  unsigned int
     value;
 
   ssize_t
@@ -4507,10 +4507,10 @@
 */
 MagickExport MagickSizeType ReadBlobMSBLongLong(Image *image)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register MagickSizeType
+  MagickSizeType
     value;
 
   ssize_t
@@ -4561,10 +4561,10 @@
 */
 MagickExport unsigned short ReadBlobMSBShort(Image *image)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned short
+  unsigned short
     value;
 
   ssize_t
@@ -4834,7 +4834,7 @@
   int
     c;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image != (Image *) NULL);
@@ -5602,10 +5602,10 @@
   int
     c;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned char
+  unsigned char
     *q;
 
   ssize_t
@@ -5684,7 +5684,7 @@
       {
         default:
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) length; i+=count)
@@ -5745,7 +5745,7 @@
       int
         status;
 
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i+=count)
diff --git a/MagickCore/cache-view.c b/MagickCore/cache-view.c
index 2866840..705ad88 100644
--- a/MagickCore/cache-view.c
+++ b/MagickCore/cache-view.c
@@ -708,7 +708,7 @@
   Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(cache_view != (CacheView *) NULL);
@@ -777,10 +777,10 @@
   const int
     id = GetOpenMPThreadId();
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(cache_view != (CacheView *) NULL);
@@ -850,7 +850,7 @@
   const int
     id = GetOpenMPThreadId();
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
   assert(cache_view != (CacheView *) NULL);
@@ -912,7 +912,7 @@
   const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(cache_view != (CacheView *) NULL);
diff --git a/MagickCore/cache.c b/MagickCore/cache.c
index 75a2c2d..3bf2a23 100644
--- a/MagickCore/cache.c
+++ b/MagickCore/cache.c
@@ -261,7 +261,7 @@
   NexusInfo
     **magick_restrict nexus_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   nexus_info=(NexusInfo **) MagickAssumeAligned(AcquireAlignedMemory(2*
@@ -418,7 +418,7 @@
   CacheInfo
     *magick_restrict cache_info;
 
-  register Quantum
+  Quantum
     *magick_restrict p,
     *magick_restrict q;
 
@@ -445,7 +445,7 @@
     return(MagickFalse);
   for (y=0; y < (ssize_t) nexus_info->region.height; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=0; x < (ssize_t) nexus_info->region.width; x++)
@@ -453,7 +453,7 @@
       double
         mask_alpha;
 
-      register ssize_t
+      ssize_t
         i;
 
       mask_alpha=QuantumScale*GetPixelWriteMask(image,p);
@@ -741,7 +741,7 @@
     Quantum
       *pixels;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -765,10 +765,10 @@
         sizeof(Quantum));
     else
       {
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         /*
@@ -778,7 +778,7 @@
         q=clone_nexus[id]->pixels;
         for (x=0; x < (ssize_t) cache_info->columns; x++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           if (x == (ssize_t) clone_info->columns)
@@ -1117,7 +1117,7 @@
 MagickPrivate NexusInfo **DestroyPixelCacheNexus(NexusInfo **nexus_info,
   const size_t number_threads)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(nexus_info != (NexusInfo **) NULL);
@@ -1852,7 +1852,7 @@
 static inline MagickBooleanType CopyPixel(const Image *image,
   const Quantum *source,Quantum *destination)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if (source == (const Quantum *) NULL)
@@ -1882,7 +1882,7 @@
   CacheInfo
     *magick_restrict cache_info;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
   assert(image != (Image *) NULL);
@@ -1937,7 +1937,7 @@
   const int
     id = GetOpenMPThreadId();
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
   assert(image != (const Image *) NULL);
@@ -2114,7 +2114,7 @@
   const int
     id = GetOpenMPThreadId();
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
   assert(image != (const Image *) NULL);
@@ -2732,20 +2732,20 @@
     *magick_restrict pixels,
     virtual_pixel[MaxPixelChannels];
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register const void
+  const void
     *magick_restrict r;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     i,
     u;
 
-  register unsigned char
+  unsigned char
     *magick_restrict s;
 
   ssize_t
@@ -3408,7 +3408,7 @@
   CacheInfo
     *magick_restrict cache_info;
 
-  register Quantum
+  Quantum
     *magick_restrict p,
     *magick_restrict q;
 
@@ -3435,7 +3435,7 @@
     return(MagickFalse);
   for (y=0; y < (ssize_t) nexus_info->region.height; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=0; x < (ssize_t) nexus_info->region.width; x++)
@@ -3443,7 +3443,7 @@
       double
         mask_alpha;
 
-      register ssize_t
+      ssize_t
         i;
 
       mask_alpha=(double) GetPixelCompositeMask(image,p);
@@ -3547,7 +3547,7 @@
   const CacheInfo *magick_restrict cache_info,const MagickOffsetType offset,
   const MagickSizeType length,const unsigned char *magick_restrict buffer)
 {
-  register MagickOffsetType
+  MagickOffsetType
     i;
 
   ssize_t
@@ -4370,7 +4370,7 @@
   const CacheInfo *magick_restrict cache_info,const MagickOffsetType offset,
   const MagickSizeType length,unsigned char *magick_restrict buffer)
 {
-  register MagickOffsetType
+  MagickOffsetType
     i;
 
   ssize_t
@@ -4412,10 +4412,10 @@
     extent,
     length;
 
-  register ssize_t
+  ssize_t
     y;
 
-  register unsigned char
+  unsigned char
     *magick_restrict q;
 
   size_t
@@ -4438,7 +4438,7 @@
     case MemoryCache:
     case MapCache:
     {
-      register unsigned char
+      unsigned char
         *magick_restrict p;
 
       /*
@@ -4583,10 +4583,10 @@
     extent,
     length;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     y;
 
   size_t
@@ -4615,7 +4615,7 @@
     case MemoryCache:
     case MapCache:
     {
-      register Quantum
+      Quantum
         *magick_restrict p;
 
       /*
@@ -5186,10 +5186,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -5563,10 +5563,10 @@
     extent,
     length;
 
-  register const unsigned char
+  const unsigned char
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     y;
 
   size_t
@@ -5589,7 +5589,7 @@
     case MemoryCache:
     case MapCache:
     {
-      register unsigned char
+      unsigned char
         *magick_restrict q;
 
       /*
@@ -5734,10 +5734,10 @@
     extent,
     length;
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     y;
 
   size_t
@@ -5758,7 +5758,7 @@
     case MemoryCache:
     case MapCache:
     {
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       /*
diff --git a/MagickCore/channel.c b/MagickCore/channel.c
index 02968bb..bc40e0c 100644
--- a/MagickCore/channel.c
+++ b/MagickCore/channel.c
@@ -147,13 +147,13 @@
       destination_traits,
       source_traits;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -574,13 +574,13 @@
     Quantum
       *pixels;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       i;
 
     if (status == MagickFalse)
@@ -595,7 +595,7 @@
     next=image;
     for (i=0; i < (ssize_t) GetPixelChannels(combine_image); i++)
     {
-      register ssize_t
+      ssize_t
         x;
 
       PixelChannel channel = GetPixelChannelChannel(combine_image,i);
@@ -760,13 +760,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -781,7 +781,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       SetPixelChannel(separate_image,GrayPixelChannel,(Quantum) 0,q);
@@ -852,7 +852,7 @@
     *images,
     *separate_image;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image != (Image *) NULL);
@@ -918,7 +918,7 @@
     gamma,
     Sa;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1010,10 +1010,10 @@
 #endif
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -1030,7 +1030,7 @@
           double
             gamma;
 
-          register ssize_t
+          ssize_t
             i;
 
           gamma=QuantumScale*GetPixelAlpha(image,q);
@@ -1070,10 +1070,10 @@
 #endif
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -1130,10 +1130,10 @@
 #endif
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -1151,7 +1151,7 @@
             gamma,
             Sa;
 
-          register ssize_t
+          ssize_t
             i;
 
           Sa=QuantumScale*GetPixelAlpha(image,q);
@@ -1223,10 +1223,10 @@
 #endif
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -1281,10 +1281,10 @@
         PixelInfo
           pixel;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
diff --git a/MagickCore/cipher.c b/MagickCore/cipher.c
index b2b6ca3..c25d19f 100644
--- a/MagickCore/cipher.c
+++ b/MagickCore/cipher.c
@@ -280,7 +280,7 @@
 static inline void AddRoundKey(const unsigned int *ciphertext,
   const unsigned int *key,unsigned int *plaintext)
 {
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -320,10 +320,10 @@
 static void FinalizeRoundKey(const unsigned int *ciphertext,
   const unsigned int *key,unsigned char *plaintext)
 {
-  register unsigned char
+  unsigned char
     *p;
 
-  register unsigned int
+  unsigned int
     i,
     j;
 
@@ -349,10 +349,10 @@
 static void InitializeRoundKey(const unsigned char *ciphertext,
   const unsigned int *key,unsigned int *plaintext)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned int
+  unsigned int
     i,
     j;
 
@@ -381,7 +381,7 @@
 static void EncipherAESBlock(AESInfo *aes_info,const unsigned char *plaintext,
   unsigned char *ciphertext)
 {
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -523,7 +523,7 @@
 static inline void IncrementCipherNonce(const size_t length,
   unsigned char *nonce)
 {
-  register ssize_t
+  ssize_t
     i;
 
   for (i=(ssize_t) (length-1); i >= 0; i--)
@@ -583,7 +583,7 @@
   SignatureInfo
     *signature_info;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -658,11 +658,11 @@
   image_view=AcquireAuthenticCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       i,
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -793,7 +793,7 @@
   QuantumType
     quantum_type;
 
-  register unsigned char
+  unsigned char
     *p;
 
   SignatureInfo
@@ -878,11 +878,11 @@
   image_view=AcquireAuthenticCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       i,
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -960,7 +960,7 @@
 static inline void InverseAddRoundKey(const unsigned int *alpha,
   unsigned int *beta)
 {
-  register unsigned int
+  unsigned int
     i,
     j;
 
@@ -993,7 +993,7 @@
 
 static void SetAESKey(AESInfo *aes_info,const StringInfo *key)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickCore/coder.c b/MagickCore/coder.c
index 8b0abaf..4f2a82c 100644
--- a/MagickCore/coder.c
+++ b/MagickCore/coder.c
@@ -125,7 +125,7 @@
 
 static void *DestroyCoderNode(void *coder_info)
 {
-  register CoderInfo
+  CoderInfo
     *p;
 
   p=(CoderInfo *) coder_info;
@@ -146,7 +146,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   SplayTreeInfo
@@ -163,7 +163,7 @@
     CoderInfo
       *coder_info;
 
-    register const CoderMapInfo
+    const CoderMapInfo
       *p;
 
     p=CoderMap+i;
@@ -325,10 +325,10 @@
   const CoderInfo
     **coder_map;
 
-  register const CoderInfo
+  const CoderInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -395,7 +395,7 @@
 
 static int CoderCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -410,10 +410,10 @@
   char
     **coder_map;
 
-  register const CoderInfo
+  const CoderInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -520,7 +520,7 @@
   const CoderInfo
     **coder_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/color-private.h b/MagickCore/color-private.h
index 856a87e..29b90ce 100644
--- a/MagickCore/color-private.h
+++ b/MagickCore/color-private.h
@@ -45,7 +45,7 @@
 
   if (*color != '\0')
     {
-      register char
+      char
         *p;
 
       (void) CopyMagickString(start_color,color,MagickPathExtent);
diff --git a/MagickCore/color.c b/MagickCore/color.c
index cb1a2f0..4da1f4d 100644
--- a/MagickCore/color.c
+++ b/MagickCore/color.c
@@ -839,7 +839,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -874,7 +874,7 @@
     ColorInfo
       *color_info;
 
-    register const ColormapInfo
+    const ColormapInfo
       *p;
 
     p=Colormap+i;
@@ -950,7 +950,7 @@
 
 static void *DestroyColorElement(void *color_info)
 {
-  register ColorInfo
+  ColorInfo
     *p;
 
   p=(ColorInfo *) color_info;
@@ -1010,10 +1010,10 @@
   char
     colorname[MagickPathExtent];
 
-  register const ColorInfo
+  const ColorInfo
     *p;
 
-  register char
+  char
     *q;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -1285,10 +1285,10 @@
   const ColorInfo
     **colors;
 
-  register const ColorInfo
+  const ColorInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1359,7 +1359,7 @@
 
 static int ColorCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -1378,10 +1378,10 @@
   char
     **colors;
 
-  register const ColorInfo
+  const ColorInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1650,7 +1650,7 @@
     fuzz,
     pixel;
 
-  register double
+  double
     distance;
 
   if (image->alpha_trait == UndefinedPixelTrait)
@@ -1718,11 +1718,11 @@
     target,
     pixel;
 
-  register const Quantum
+  const Quantum
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1827,7 +1827,7 @@
     fuzz,
     pixel;
 
-  register double
+  double
     distance;
 
   if (GetPixelInfoIntensity(image,p) == GetPixelInfoIntensity(image,q))
@@ -1879,7 +1879,7 @@
   const ColorInfo
     **color_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2184,7 +2184,7 @@
   char
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   MagickStatusType
@@ -2274,10 +2274,10 @@
   MagickStatusType
     flags;
 
-  register const ColorInfo
+  const ColorInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2418,7 +2418,7 @@
       if ((LocaleCompare(colorspace,"color") == 0) ||
           (LocaleCompare(colorspace,"icc-color") == 0))
         {
-          register ssize_t
+          ssize_t
             j;
 
           (void) CopyMagickString(colorspace,name+i+2,MagickPathExtent);
@@ -2661,7 +2661,7 @@
   double
     alpha;
 
-  register const ColorInfo
+  const ColorInfo
     *p;
 
   magick_unreferenced(image);
diff --git a/MagickCore/colormap.c b/MagickCore/colormap.c
index 6c23412..8f9a148 100644
--- a/MagickCore/colormap.c
+++ b/MagickCore/colormap.c
@@ -104,7 +104,7 @@
 MagickExport MagickBooleanType AcquireImageColormap(Image *image,
   const size_t colors,ExceptionInfo *exception)
 {
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -209,10 +209,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     ssize_t
@@ -302,7 +302,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -347,10 +347,10 @@
     Quantum
       index;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c
index 87bd84b..8a553d2 100644
--- a/MagickCore/colorspace.c
+++ b/MagickCore/colorspace.c
@@ -464,7 +464,7 @@
   PrimaryInfo
     primary_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -517,10 +517,10 @@
         PixelInfo
           pixel;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -573,10 +573,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -630,10 +630,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -721,10 +721,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -959,10 +959,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -1026,10 +1026,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -1272,13 +1272,13 @@
         PixelInfo
           pixel;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register unsigned int
+        unsigned int
           blue,
           green,
           red;
@@ -1334,7 +1334,7 @@
     }
     case PseudoClass:
     {
-      register unsigned int
+      unsigned int
         blue,
         green,
         red;
@@ -2031,7 +2031,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2079,10 +2079,10 @@
         PixelInfo
           pixel;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -2135,10 +2135,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -2196,10 +2196,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -2288,10 +2288,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -2529,10 +2529,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -2595,10 +2595,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -2830,10 +2830,10 @@
         PixelInfo
           pixel;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -2847,7 +2847,7 @@
           }
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register size_t
+          size_t
             blue,
             green,
             red;
@@ -2913,7 +2913,7 @@
         PixelInfo
           pixel;
 
-        register size_t
+        size_t
           blue,
           green,
           red;
diff --git a/MagickCore/compare.c b/MagickCore/compare.c
index 088e919..24867dd 100644
--- a/MagickCore/compare.c
+++ b/MagickCore/compare.c
@@ -108,7 +108,7 @@
 
 static size_t GetImageChannels(const Image *image)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -234,14 +234,14 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register Quantum
+    Quantum
       *magick_restrict r;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -264,7 +264,7 @@
       MagickStatusType
         difference;
 
-      register ssize_t
+      ssize_t
         i;
 
       if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -399,11 +399,11 @@
     double
       channel_distortion[MaxPixelChannels+1];
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       j,
       x;
 
@@ -426,7 +426,7 @@
       MagickBooleanType
         difference;
 
-      register ssize_t
+      ssize_t
         i;
 
       if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -493,7 +493,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     j;
 
   size_t
@@ -518,11 +518,11 @@
     double
       channel_distortion[MaxPixelChannels+1];
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -541,7 +541,7 @@
         Da,
         Sa;
 
-      register ssize_t
+      ssize_t
         i;
 
       if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -608,7 +608,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     j;
 
   size_t
@@ -633,11 +633,11 @@
     double
       channel_distortion[MaxPixelChannels+1];
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -656,7 +656,7 @@
         Da,
         Sa;
 
-      register ssize_t
+      ssize_t
         i;
 
       if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -741,11 +741,11 @@
   reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception);
   for (y=0; y < (ssize_t) rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,columns,1,exception);
@@ -761,7 +761,7 @@
         Da,
         Sa;
 
-      register ssize_t
+      ssize_t
         i;
 
       if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -824,7 +824,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     j;
 
   size_t
@@ -849,11 +849,11 @@
     double
       channel_distortion[MaxPixelChannels+1];
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -872,7 +872,7 @@
         Da,
         Sa;
 
-      register ssize_t
+      ssize_t
         i;
 
       if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -948,7 +948,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -985,11 +985,11 @@
   reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception);
   for (y=0; y < (ssize_t) rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,columns,1,exception);
@@ -1016,11 +1016,11 @@
   area=PerceptibleReciprocal(area);
   for (y=0; y < (ssize_t) rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,columns,1,exception);
@@ -1151,11 +1151,11 @@
     double
       channel_distortion[MaxPixelChannels+1];
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       j,
       x;
 
@@ -1175,7 +1175,7 @@
         Da,
         Sa;
 
-      register ssize_t
+      ssize_t
         i;
 
       if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -1241,7 +1241,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   status=GetMeanSquaredDistortion(image,reconstruct_image,distortion,exception);
@@ -1293,7 +1293,7 @@
     double
       difference;
 
-    register ssize_t
+    ssize_t
       i;
 
     difference=0.0;
@@ -1303,7 +1303,7 @@
         alpha,
         beta;
 
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) channel_phash[0].number_colorspaces; j++)
@@ -1338,7 +1338,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   status=GetMeanSquaredDistortion(image,reconstruct_image,distortion,exception);
@@ -1379,7 +1379,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1429,11 +1429,11 @@
     double
       channel_distortion[MaxPixelChannels+1];
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       i,
       x;
 
@@ -1460,11 +1460,11 @@
         y_pixel_mu[MaxPixelChannels+1],
         y_pixel_sigma_squared[MaxPixelChannels+1];
 
-      register const Quantum
+      const Quantum
         *magick_restrict reference,
         *magick_restrict target;
 
-      register MagickRealType
+      MagickRealType
         *k;
 
       ssize_t
@@ -1481,7 +1481,7 @@
       target=q;
       for (v=0; v < (ssize_t) kernel_info->height; v++)
       {
-        register ssize_t
+        ssize_t
           u;
 
         for (u=0; u < (ssize_t) kernel_info->width; u++)
@@ -1578,7 +1578,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   status=GetStructuralSimilarityDistortion(image,reconstruct_image,
@@ -1904,11 +1904,11 @@
   reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception);
   for (y=0; y < (ssize_t) rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,columns,1,exception);
@@ -1917,7 +1917,7 @@
       break;
     for (x=0; x < (ssize_t) columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2037,11 +2037,11 @@
   reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception);
   for (y=0; y < (ssize_t) rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,columns,1,exception);
@@ -2050,7 +2050,7 @@
       break;
     for (x=0; x < (ssize_t) columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2220,10 +2220,10 @@
     double
       similarity;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2242,7 +2242,7 @@
       }
     for (x=0; x < (ssize_t) (image->columns-reference->columns+1); x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
diff --git a/MagickCore/composite-private.h b/MagickCore/composite-private.h
index 0c3747c..e982289 100644
--- a/MagickCore/composite-private.h
+++ b/MagickCore/composite-private.h
@@ -57,7 +57,7 @@
     gamma,
     Sa;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
diff --git a/MagickCore/composite.c b/MagickCore/composite.c
index 28e2dfb..5e297ed 100644
--- a/MagickCore/composite.c
+++ b/MagickCore/composite.c
@@ -333,13 +333,13 @@
       canvas_pixel,
       source_pixel;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -391,7 +391,7 @@
         Sc,
         Sca;
 
-      register ssize_t
+      ssize_t
         i;
 
       size_t
@@ -624,13 +624,13 @@
         MagickBooleanType
           sync;
 
-        register const Quantum
+        const Quantum
           *p;
 
-        register Quantum
+        Quantum
           *q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -646,7 +646,7 @@
           }
         for (x=0; x < (ssize_t) source_image->columns; x++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           if (GetPixelReadMask(source_image,p) <= (QuantumRange/2))
@@ -708,13 +708,13 @@
         MagickBooleanType
           sync;
 
-        register const Quantum
+        const Quantum
           *p;
 
-        register Quantum
+        Quantum
           *q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -880,13 +880,13 @@
         MagickBooleanType
           sync;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (((y+y_offset) < 0) || ((y+y_offset) >= (ssize_t) image->rows))
@@ -1051,13 +1051,13 @@
         MagickBooleanType
           sync;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (((y+y_offset) < 0) || ((y+y_offset) >= (ssize_t) image->rows))
@@ -1231,13 +1231,13 @@
       canvas_pixel,
       source_pixel;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1294,7 +1294,7 @@
         Sc,
         Sca;
 
-      register ssize_t
+      ssize_t
         i;
 
       size_t
@@ -2547,7 +2547,7 @@
       */
       for (y=0; y < (ssize_t) image->rows; y+=(ssize_t) texture_image->rows)
       {
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -2597,14 +2597,14 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *p,
       *pixels;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *q;
 
     size_t
@@ -2623,7 +2623,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x+=(ssize_t) texture_image->columns)
     {
-      register ssize_t
+      ssize_t
         j;
 
       p=pixels;
@@ -2632,7 +2632,7 @@
         width=image->columns-x;
       for (j=0; j < (ssize_t) width; j++)
       {
-        register ssize_t
+        ssize_t
           i;
 
         for (i=0; i < (ssize_t) GetPixelChannels(texture_image); i++)
diff --git a/MagickCore/compress.c b/MagickCore/compress.c
index af56c0f..5a0088b 100644
--- a/MagickCore/compress.c
+++ b/MagickCore/compress.c
@@ -233,7 +233,7 @@
 {
 #define MaxLineExtent  36L
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -299,10 +299,10 @@
 
 MagickExport void Ascii85Encode(Image *image,const unsigned char code)
 {
-  register char
+  char
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   ssize_t
@@ -416,10 +416,10 @@
   Quantum
     index;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -497,10 +497,10 @@
   image_view=AcquireAuthenticCacheView(image,exception);
   for (y=0; ((y < (ssize_t) image->rows) && (null_lines < 3)); )
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -716,14 +716,14 @@
   MagickBooleanType
     proceed;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -940,7 +940,7 @@
       next;
   } TableType;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1087,7 +1087,7 @@
   int
     count;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -1239,7 +1239,7 @@
   int
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/configure.c b/MagickCore/configure.c
index c4e5128..ef91003 100644
--- a/MagickCore/configure.c
+++ b/MagickCore/configure.c
@@ -253,7 +253,7 @@
 
 static void *DestroyConfigureElement(void *configure_info)
 {
-  register ConfigureInfo
+  ConfigureInfo
     *p;
 
   p=(ConfigureInfo *) configure_info;
@@ -349,7 +349,7 @@
 MagickExport const ConfigureInfo *GetConfigureInfo(const char *name,
   ExceptionInfo *exception)
 {
-  register const ConfigureInfo
+  const ConfigureInfo
     *p;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -436,10 +436,10 @@
   const ConfigureInfo
     **options;
 
-  register const ConfigureInfo
+  const ConfigureInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -511,7 +511,7 @@
 
 static int ConfigureCompare(const void *x,const void *y)
 {
-  register char
+  char
     **p,
     **q;
 
@@ -530,10 +530,10 @@
   char
     **options;
 
-  register const ConfigureInfo
+  const ConfigureInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -759,7 +759,7 @@
     configure_path=GetEnvironmentValue("MAGICK_CONFIGURE_PATH");
     if (configure_path != (char *) NULL)
       {
-        register char
+        char
           *p,
           *q;
 
@@ -1053,7 +1053,7 @@
   const ConfigureInfo
     **configure_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/constitute.c b/MagickCore/constitute.c
index 255681b..92518ce 100644
--- a/MagickCore/constitute.c
+++ b/MagickCore/constitute.c
@@ -140,7 +140,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1002,7 +1002,7 @@
   size_t
     length;
 
-  register const char
+  const char
     *p;
 
   /*
@@ -1358,7 +1358,7 @@
   MagickStatusType
     status;
 
-  register Image
+  Image
     *p;
 
   assert(image_info != (const ImageInfo *) NULL);
@@ -1385,7 +1385,7 @@
   p=images;
   for ( ; GetNextImageInList(p) != (Image *) NULL; p=GetNextImageInList(p))
   {
-    register Image
+    Image
       *next;
 
     next=GetNextImageInList(p);
@@ -1393,7 +1393,7 @@
       break;
     if (p->scene >= next->scene)
       {
-        register ssize_t
+        ssize_t
           i;
 
         /*
diff --git a/MagickCore/decorate.c b/MagickCore/decorate.c
index 1aa7ec3..198bc74 100644
--- a/MagickCore/decorate.c
+++ b/MagickCore/decorate.c
@@ -191,7 +191,7 @@
     shadow,
     trough;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -285,10 +285,10 @@
     frame_info->inner_bevel);
   if (height != 0)
     {
-      register ssize_t
+      ssize_t
         x;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       /*
@@ -387,10 +387,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     size_t
@@ -467,10 +467,10 @@
     frame_info->y-image->rows-bevel_width+frame_info->outer_bevel);
   if (height != 0)
     {
-      register ssize_t
+      ssize_t
         x;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       /*
@@ -663,11 +663,11 @@
 #endif
   for (y=0; y < (ssize_t) raise_info->height; y++)
   {
-    register ssize_t
+    ssize_t
       i,
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -739,11 +739,11 @@
 #endif
   for (y=(ssize_t) raise_info->height; y < (ssize_t) (image->rows-raise_info->height); y++)
   {
-    register ssize_t
+    ssize_t
       i,
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -804,11 +804,11 @@
 #endif
   for (y=(ssize_t) (image->rows-raise_info->height); y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       i,
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
diff --git a/MagickCore/delegate.c b/MagickCore/delegate.c
index 364bcb8..008031d 100644
--- a/MagickCore/delegate.c
+++ b/MagickCore/delegate.c
@@ -273,7 +273,7 @@
 
 static void *DestroyDelegate(void *delegate_info)
 {
-  register DelegateInfo
+  DelegateInfo
     *p;
 
   p=(DelegateInfo *) delegate_info;
@@ -356,7 +356,7 @@
   PolicyRights
     rights;
 
-  register ssize_t
+  ssize_t
     i;
 
   status=(-1);
@@ -441,7 +441,7 @@
 #endif
 #elif defined(MAGICKCORE_WINDOWS_SUPPORT)
   {
-    register char
+    char
       *p;
 
     /*
@@ -531,7 +531,7 @@
   const char
     *q;
 
-  register char
+  char
     *p;
 
   static char
@@ -952,10 +952,10 @@
     *interpret_text,
     *string;
 
-  register char
+  char
     *q;  /* current position in interpret_text */
 
-  register const char
+  const char
     *p;  /* position in embed_text string being expanded */
 
   size_t
@@ -1110,7 +1110,7 @@
   const DelegateInfo
     *delegate_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image_info != (ImageInfo *) NULL);
@@ -1212,7 +1212,7 @@
 MagickExport const DelegateInfo *GetDelegateInfo(const char *decode,
   const char *encode,ExceptionInfo *exception)
 {
-  register const DelegateInfo
+  const DelegateInfo
     *p;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -1331,10 +1331,10 @@
   const DelegateInfo
     **delegates;
 
-  register const DelegateInfo
+  const DelegateInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1409,7 +1409,7 @@
 
 static int DelegateCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -1428,10 +1428,10 @@
   char
     **delegates;
 
-  register const DelegateInfo
+  const DelegateInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1611,7 +1611,7 @@
   MagickBooleanType
     status;
 
-  register size_t
+  size_t
     i;
 
   size_t
@@ -1693,7 +1693,7 @@
   PolicyRights
     rights;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1760,7 +1760,7 @@
       ImageInfo
         *clone_info;
 
-      register Image
+      Image
         *p;
 
       /*
@@ -1952,7 +1952,7 @@
   const char
     *path;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/deprecate.c b/MagickCore/deprecate.c
index b0badd2..966fb67 100644
--- a/MagickCore/deprecate.c
+++ b/MagickCore/deprecate.c
@@ -180,10 +180,10 @@
   RectangleInfo
     page;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register RGBQUAD
+  RGBQUAD
     *q;
 
   RGBQUAD
@@ -251,7 +251,7 @@
   q=bitmap_bits;
   for (y=0; y < (ssize_t) page.height; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     p=GetVirtualPixels(image,page.x,page.y+y,page.width,1,exception);
@@ -320,13 +320,13 @@
   HBITMAP
     bitmapH;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register RGBQUAD
+  RGBQUAD
     *q;
 
   RGBQUAD
diff --git a/MagickCore/display.c b/MagickCore/display.c
index 601dc5e..62d02bf 100644
--- a/MagickCore/display.c
+++ b/MagickCore/display.c
@@ -1629,7 +1629,7 @@
   Image
     *image;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1843,10 +1843,10 @@
   KeySym
     key_symbol;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned int
@@ -3301,10 +3301,10 @@
     y,
     y_offset;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned int
@@ -4278,10 +4278,10 @@
       Quantum
         opacity;
 
-      register int
+      int
         x;
 
-      register Quantum
+      Quantum
         *q;
 
       /*
@@ -4596,7 +4596,7 @@
     crop_info,
     highlight_info;
 
-  register Quantum
+  Quantum
     *q;
 
   unsigned int
@@ -5434,7 +5434,7 @@
   RectangleInfo
     rectangle_info;
 
-  register int
+  int
     i;
 
   unsigned int
@@ -7099,7 +7099,7 @@
   RectangleInfo
     page_geometry;
 
-  register int
+  int
     i;
 
   static char
@@ -8938,7 +8938,7 @@
         unique_file=close(unique_file)-1;
       else
         {
-          register const char
+          const char
             *p;
 
           file=fdopen(unique_file,"w");
@@ -9311,7 +9311,7 @@
   char
     text[MagickPathExtent];
 
-  register int
+  int
     x,
     y;
 
@@ -9670,10 +9670,10 @@
     y,
     y_offset;
 
-  register int
+  int
     i;
 
-  register Quantum
+  Quantum
     *q;
 
   unsigned int
@@ -10243,7 +10243,7 @@
         count,
         status;
 
-      register int
+      int
         i,
         j;
 
@@ -10344,7 +10344,7 @@
           char
             title[MagickPathExtent];
 
-          register int
+          int
             i;
 
           (void) FormatLocaleString(title,MagickPathExtent,
@@ -12049,7 +12049,7 @@
   double
     normalized_degrees;
 
-  register int
+  int
     i;
 
   unsigned int
@@ -12697,7 +12697,7 @@
 
 static int XPredicate(Display *magick_unused(display),XEvent *event,char *data)
 {
-  register XWindows
+  XWindows
     *windows;
 
   windows=(XWindows *) data;
@@ -12714,7 +12714,7 @@
 static void XScreenEvent(Display *display,XWindows *windows,XEvent *event,
   ExceptionInfo *exception)
 {
-  register int
+  int
     x,
     y;
 
@@ -13101,11 +13101,11 @@
   double
     scale_factor;
 
-  register char
+  char
     *p,
     *q;
 
-  register int
+  int
     i;
 
   unsigned int
@@ -13244,10 +13244,10 @@
       PixelInfo
         pixel;
 
-      register int
+      int
         j;
 
-      register Quantum
+      Quantum
         *s;
 
       /*
@@ -13467,7 +13467,7 @@
   RectangleInfo
     trim_info;
 
-  register int
+  int
     x,
     y;
 
@@ -13630,7 +13630,7 @@
   RectangleInfo
     geometry;
 
-  register int
+  int
     i;
 
   static char
@@ -14456,7 +14456,7 @@
   RectangleInfo
     geometry_info;
 
-  register int
+  int
     i;
 
   static char
diff --git a/MagickCore/distort.c b/MagickCore/distort.c
index be91ae1..00ea1a0 100644
--- a/MagickCore/distort.c
+++ b/MagickCore/distort.c
@@ -377,7 +377,7 @@
   double
     *coeff;
 
-  register size_t
+  size_t
     i;
 
   size_t
@@ -1121,7 +1121,7 @@
       size_t
         nterms;   /* number of polynomial terms per number_values */
 
-      register ssize_t
+      ssize_t
         j;
 
       MagickBooleanType
@@ -2048,7 +2048,7 @@
 
   /* Verbose output */
   if (IsStringTrue(GetImageArtifact(image,"verbose")) != MagickFalse) {
-    register ssize_t
+    ssize_t
        i;
     char image_gen[MagickPathExtent];
     const char *lookup;
@@ -2491,10 +2491,10 @@
         d,
         s;  /* transform destination image x,y  to source image x,y */
 
-      register ssize_t
+      ssize_t
         i;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       q=QueueCacheViewAuthenticPixels(distort_view,0,j,distort_image->columns,1,
@@ -2634,7 +2634,7 @@
           case PolynomialDistortion:
           {
             /* multi-ordered polynomial */
-            register ssize_t
+            ssize_t
               k;
 
             ssize_t
@@ -3105,7 +3105,7 @@
     switch (sparse_method) {
       case BarycentricColorInterpolate:
       {
-        register ssize_t x=0;
+        ssize_t x=0;
         (void) FormatLocaleFile(stderr, "Barycentric Sparse Color:\n");
         if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
           (void) FormatLocaleFile(stderr, "  -channel R -fx '%+lf*i %+lf*j %+lf' \\\n",
@@ -3128,7 +3128,7 @@
       }
       case BilinearColorInterpolate:
       {
-        register ssize_t x=0;
+        ssize_t x=0;
         (void) FormatLocaleFile(stderr, "Bilinear Sparse Color\n");
         if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
           (void) FormatLocaleFile(stderr, "   -channel R -fx '%+lf*i %+lf*j %+lf*i*j %+lf;\n",
@@ -3202,10 +3202,10 @@
       PixelInfo
         pixel;    /* pixel to assign to distorted image */
 
-      register ssize_t
+      ssize_t
         i;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       q=GetCacheViewAuthenticPixels(sparse_view,0,j,sparse_image->columns,
@@ -3223,7 +3223,7 @@
         {
           case BarycentricColorInterpolate:
           {
-            register ssize_t x=0;
+            ssize_t x=0;
             if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
               pixel.red     = coeff[x]*i +coeff[x+1]*j
                               +coeff[x+2], x+=3;
@@ -3245,7 +3245,7 @@
           }
           case BilinearColorInterpolate:
           {
-            register ssize_t x=0;
+            ssize_t x=0;
             if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
               pixel.red     = coeff[x]*i     + coeff[x+1]*j +
                               coeff[x+2]*i*j + coeff[x+3], x+=4;
@@ -3287,7 +3287,7 @@
               pixel.alpha=0.0;
             denominator = 0.0;
             for(k=0; k<number_arguments; k+=2+number_colors) {
-              register ssize_t x=(ssize_t) k+2;
+              ssize_t x=(ssize_t) k+2;
               double weight =
                   ((double)i-arguments[ k ])*((double)i-arguments[ k ])
                 + ((double)j-arguments[k+1])*((double)j-arguments[k+1]);
@@ -3337,7 +3337,7 @@
                   fabs((double)i-arguments[ k ])
                 + fabs((double)j-arguments[k+1]);
               if ( distance < minimum ) {
-                register ssize_t x=(ssize_t) k+2;
+                ssize_t x=(ssize_t) k+2;
                 if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
                   pixel.red=arguments[x++];
                 if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
@@ -3372,7 +3372,7 @@
                   ((double)i-arguments[ k ])*((double)i-arguments[ k ])
                 + ((double)j-arguments[k+1])*((double)j-arguments[k+1]);
               if ( distance < minimum ) {
-                register ssize_t x=(ssize_t) k+2;
+                ssize_t x=(ssize_t) k+2;
                 if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
                   pixel.red=arguments[x++];
                 if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
diff --git a/MagickCore/distribute-cache.c b/MagickCore/distribute-cache.c
index 601cb0f..d05588e 100644
--- a/MagickCore/distribute-cache.c
+++ b/MagickCore/distribute-cache.c
@@ -147,7 +147,7 @@
 static inline MagickOffsetType dpc_read(int file,const MagickSizeType length,
   unsigned char *magick_restrict message)
 {
-  register MagickOffsetType
+  MagickOffsetType
     i;
 
   ssize_t
@@ -278,7 +278,7 @@
   int
     argc;
 
-  register ssize_t
+  ssize_t
     i;
 
   static size_t
@@ -427,7 +427,7 @@
   MagickOffsetType
     count;
 
-  register MagickOffsetType
+  MagickOffsetType
     i;
 
 #if !MAGICKCORE_HAVE_DISTRIBUTE_CACHE
@@ -484,7 +484,7 @@
   MagickSizeType
     length;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -552,10 +552,10 @@
   RectangleInfo
     region;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register unsigned char
+  unsigned char
     *q;
 
   unsigned char
@@ -609,10 +609,10 @@
   RectangleInfo
     region;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register unsigned char
+  unsigned char
     *q;
 
   unsigned char
@@ -671,10 +671,10 @@
   RectangleInfo
     region;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -729,10 +729,10 @@
   RectangleInfo
     region;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -784,7 +784,7 @@
   MagickOffsetType
     count;
 
-  register unsigned char
+  unsigned char
     *p;
 
   RandomInfo
@@ -912,7 +912,7 @@
   Not implemented!
 #endif
 
-  register struct addrinfo
+  struct addrinfo
     *p;
 
   SOCKET_TYPE
@@ -1134,7 +1134,7 @@
   MagickOffsetType
     count;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -1223,7 +1223,7 @@
   MagickOffsetType
     count;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -1298,7 +1298,7 @@
   MagickOffsetType
     count;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -1370,7 +1370,7 @@
   MagickOffsetType
     count;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -1434,7 +1434,7 @@
   MagickOffsetType
     count;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -1510,7 +1510,7 @@
   MagickOffsetType
     count;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
diff --git a/MagickCore/draw.c b/MagickCore/draw.c
index 346a27f..4aa6a30 100644
--- a/MagickCore/draw.c
+++ b/MagickCore/draw.c
@@ -335,7 +335,7 @@
     (void) CloneString(&clone_info->server_name,draw_info->server_name);
   if (draw_info->dash_pattern != (double *) NULL)
     {
-      register ssize_t
+      ssize_t
         x;
 
       for (x=0; fabs(draw_info->dash_pattern[x]) >= MagickEpsilon; x++) ;
@@ -417,7 +417,7 @@
 
 static PolygonInfo *DestroyPolygonInfo(PolygonInfo *polygon_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if (polygon_info->edges != (EdgeInfo *) NULL)
@@ -445,7 +445,7 @@
     return(1); \
 }
 
-  register const PointInfo
+  const PointInfo
     *p,
     *q;
 
@@ -469,10 +469,10 @@
 
 static void LogPolygonInfo(const PolygonInfo *polygon_info)
 {
-  register EdgeInfo
+  EdgeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -502,7 +502,7 @@
   PointInfo
     point;
 
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; i < (ssize_t) (number_points >> 1); i++)
@@ -530,7 +530,7 @@
   SegmentInfo
     bounds;
 
-  register ssize_t
+  ssize_t
     i,
     n;
 
@@ -818,7 +818,7 @@
 
 static void LogPathInfo(const PathInfo *path_info)
 {
-  register const PathInfo
+  const PathInfo
     *p;
 
   (void) LogMagickEvent(DrawEvent,GetMagickModule(),"    begin vector-path");
@@ -847,7 +847,7 @@
     p,
     q;
 
-  register ssize_t
+  ssize_t
     i,
     n;
 
@@ -1049,7 +1049,7 @@
     intercept,
     z;
 
-  register double
+  double
     x;
 
   SegmentInfo
@@ -1170,7 +1170,7 @@
     min,
     max;
 
-  register ssize_t
+  ssize_t
     i;
 
   SegmentInfo
@@ -1250,10 +1250,10 @@
     PointInfo
       point;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     SegmentInfo
@@ -1354,7 +1354,7 @@
   PrimitiveInfo
     primitive_info[6];
 
-  register ssize_t
+  ssize_t
     i;
 
   SegmentInfo
@@ -1760,11 +1760,11 @@
   PrimitiveInfo
     *dash_polygon;
 
-  register double
+  double
     dx,
     dy;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2059,10 +2059,10 @@
       composite,
       pixel;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       i,
       x;
 
@@ -2280,7 +2280,7 @@
     *mvg_info->primitive_info,(size_t) extent,quantum);
   if (*mvg_info->primitive_info != (PrimitiveInfo *) NULL)
     {
-      register ssize_t
+      ssize_t
         i;
 
       *mvg_info->extent=(size_t) extent;
@@ -2365,7 +2365,7 @@
       break;
     if (LocaleCompare("push",token) == 0)
       {
-        register const char
+        const char
           *end,
           *start;
 
@@ -2493,10 +2493,10 @@
   PrimitiveType
     primitive_type;
 
-  register const char
+  const char
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -4608,7 +4608,7 @@
 
 static PolygonInfo **DestroyPolygonThreadSet(PolygonInfo **polygon_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(polygon_info != (PolygonInfo **) NULL);
@@ -4628,7 +4628,7 @@
   PolygonInfo
     **polygon_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -4659,7 +4659,7 @@
     EdgeInfo
       *edge_info;
 
-    register ssize_t
+    ssize_t
       j;
 
     polygon_info[i]=(PolygonInfo *) AcquireMagickMemory(
@@ -4729,13 +4729,13 @@
   PointInfo
     delta;
 
-  register const PointInfo
+  const PointInfo
     *q;
 
-  register EdgeInfo
+  EdgeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -4907,10 +4907,10 @@
   PolygonInfo
     **magick_restrict polygon_info;
 
-  register EdgeInfo
+  EdgeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   SegmentInfo
@@ -4998,10 +4998,10 @@
         PixelInfo
           pixel;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         ssize_t
@@ -5056,10 +5056,10 @@
     const int
       id = GetOpenMPThreadId();
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     ssize_t
@@ -5162,7 +5162,7 @@
     point,
     q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -5256,7 +5256,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -5301,7 +5301,7 @@
           PixelInfo
             pixel;
 
-          register Quantum
+          Quantum
             *q;
 
           q=GetCacheViewAuthenticPixels(image_view,x,y,1,1,exception);
@@ -5323,7 +5323,7 @@
           GetPixelInfo(image,&pixel);
           for (y=0; y < (ssize_t) image->rows; y++)
           {
-            register Quantum
+            Quantum
               *magick_restrict q;
 
             q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
@@ -5379,7 +5379,7 @@
 
           for (y=0; y < (ssize_t) image->rows; y++)
           {
-            register Quantum
+            Quantum
               *magick_restrict q;
 
             q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
@@ -5411,7 +5411,7 @@
           PixelInfo
             pixel;
 
-          register Quantum
+          Quantum
             *q;
 
           q=GetCacheViewAuthenticPixels(image_view,x,y,1,1,exception);
@@ -5433,7 +5433,7 @@
             exception);
           for (y=0; y < (ssize_t) image->rows; y++)
           {
-            register Quantum
+            Quantum
               *magick_restrict q;
 
             q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
@@ -5485,7 +5485,7 @@
           GetPixelInfo(image,&pixel);
           for (y=0; y < (ssize_t) image->rows; y++)
           {
-            register Quantum
+            Quantum
               *magick_restrict q;
 
             q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
@@ -5608,7 +5608,7 @@
       PixelInfo
         fill_color;
 
-      register Quantum
+      Quantum
         *q;
 
       if ((y < 0) || (y >= (ssize_t) image->rows))
@@ -5765,7 +5765,7 @@
   PrimitiveInfo
     linecap[5];
 
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; i < 4; i++)
@@ -5795,7 +5795,7 @@
   PrimitiveInfo
     *stroke_polygon;
 
-  register const PrimitiveInfo
+  const PrimitiveInfo
     *p,
     *q;
 
@@ -6044,7 +6044,7 @@
   double
     r;
 
-  register ssize_t
+  ssize_t
     i;
 
   r=1.0;
@@ -6105,17 +6105,17 @@
     points[3],
     radii;
 
-  register double
+  double
     cosine,
     sine;
 
   PrimitiveInfo
     *primitive_info;
 
-  register PrimitiveInfo
+  PrimitiveInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -6250,10 +6250,10 @@
   PrimitiveInfo
     *primitive_info;
 
-  register PrimitiveInfo
+  PrimitiveInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -6409,10 +6409,10 @@
   PrimitiveInfo
     *primitive_info;
 
-  register PrimitiveInfo
+  PrimitiveInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -6523,10 +6523,10 @@
   PrimitiveType
     primitive_type;
 
-  register PrimitiveInfo
+  PrimitiveInfo
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -7010,10 +7010,10 @@
   PointInfo
     point;
 
-  register PrimitiveInfo
+  PrimitiveInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   p=primitive_info;
@@ -7057,10 +7057,10 @@
   PrimitiveInfo
     *primitive_info;
 
-  register PrimitiveInfo
+  PrimitiveInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -7134,11 +7134,11 @@
   double
     distance;
 
-  register double
+  double
     dx,
     dy;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -7253,7 +7253,7 @@
     *polygon_primitive,
     *stroke_polygon;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index c95fd01..30f46f6 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -152,7 +152,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -257,13 +257,13 @@
 #endif
   for (y=0; y < (ssize_t) blur_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict r;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -278,10 +278,10 @@
       }
     for (x=0; x < (ssize_t) blur_image->columns; x++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
-      register ssize_t
+      ssize_t
         i;
 
       ssize_t
@@ -317,13 +317,13 @@
           blur_traits,
           traits;
 
-        register const double
+        const double
           *magick_restrict k;
 
-        register const Quantum
+        const Quantum
           *magick_restrict pixels;
 
-        register ssize_t
+        ssize_t
           u;
 
         ssize_t
@@ -473,7 +473,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -578,13 +578,13 @@
 #endif
   for (y=0; y < (ssize_t) sharp_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict r;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -599,10 +599,10 @@
       }
     for (x=0; x < (ssize_t) sharp_image->columns; x++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
-      register ssize_t
+      ssize_t
         i;
 
       ssize_t
@@ -638,13 +638,13 @@
           sharp_traits,
           traits;
 
-        register const double
+        const double
           *magick_restrict k;
 
-        register const Quantum
+        const Quantum
           *magick_restrict pixels;
 
-        register ssize_t
+        ssize_t
           u;
 
         ssize_t
@@ -863,7 +863,7 @@
 static double **DestroyBilateralThreadSet(const ssize_t number_threads,
   double **weights)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(weights != (double **) NULL);
@@ -880,7 +880,7 @@
   double
     **weights;
 
-  register ssize_t
+  ssize_t
     i;
 
   weights=(double **) AcquireQuantumMemory(number_threads+1,sizeof(*weights));
@@ -924,7 +924,7 @@
   OffsetInfo
     mid;
 
-  register ssize_t
+  ssize_t
     u;
 
   ssize_t
@@ -983,10 +983,10 @@
     const int
       id = GetOpenMPThreadId();
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1004,11 +1004,11 @@
         gamma,
         pixel;
 
-      register const Quantum
+      const Quantum
         *magick_restrict p,
         *magick_restrict r;
 
-      register ssize_t
+      ssize_t
         i,
         u;
 
@@ -1218,7 +1218,7 @@
   const ssize_t y_offset,const size_t columns,const size_t rows,
   const int polarity,Quantum *magick_restrict f,Quantum *magick_restrict g)
 {
-  register Quantum
+  Quantum
     *p,
     *q,
     *r,
@@ -1245,7 +1245,7 @@
     MagickRealType
       v;
 
-    register ssize_t
+    ssize_t
       i,
       x;
 
@@ -1279,7 +1279,7 @@
 #endif
   for (y=0; y < (ssize_t) rows; y++)
   {
-    register ssize_t
+    ssize_t
       i,
       x;
 
@@ -1332,7 +1332,7 @@
     *magick_restrict buffer,
     *magick_restrict pixels;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1398,7 +1398,7 @@
       despeckle_traits,
       traits;
 
-    register ssize_t
+    ssize_t
       k,
       x;
 
@@ -1420,7 +1420,7 @@
     j=(ssize_t) image->columns+2;
     for (y=0; y < (ssize_t) image->rows; y++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
       p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -1451,7 +1451,7 @@
       MagickBooleanType
         sync;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       q=GetCacheViewAuthenticPixels(despeckle_view,0,y,despeckle_image->columns,
@@ -1531,7 +1531,7 @@
   KernelInfo
     *kernel_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1615,7 +1615,7 @@
   KernelInfo
     *kernel_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1840,10 +1840,10 @@
 #endif
   for (y=0; y < (ssize_t) gaussian_image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1867,7 +1867,7 @@
         quadrant,
         target;
 
-      register size_t
+      size_t
         i;
 
       min_variance=MagickMaximumValue;
@@ -1883,7 +1883,7 @@
           mean[MaxPixelChannels],
           variance;
 
-        register ssize_t
+        ssize_t
           n;
 
         ssize_t
@@ -2120,7 +2120,7 @@
         *pix,
         *pixels;
 
-      register ssize_t
+      ssize_t
         y;
 
       ssize_t
@@ -2198,10 +2198,10 @@
         *pix,
         *pixels;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register ssize_t
+      ssize_t
         x;
 
       ssize_t
@@ -2323,7 +2323,7 @@
     *kernel,
     normalize;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -2374,7 +2374,7 @@
   PointInfo
     point;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2444,13 +2444,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2465,7 +2465,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2482,13 +2482,13 @@
           blur_traits,
           traits;
 
-        register const Quantum
+        const Quantum
           *magick_restrict r;
 
-        register MagickRealType
+        MagickRealType
           *magick_restrict k;
 
-        register ssize_t
+        ssize_t
           j;
 
         channel=GetPixelChannelChannel(image,i);
@@ -2639,7 +2639,7 @@
   RectangleInfo
     geometry;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -3162,7 +3162,7 @@
   PointInfo
     blur_center;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3232,13 +3232,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3259,7 +3259,7 @@
       PointInfo
         center;
 
-      register ssize_t
+      ssize_t
         i;
 
       size_t
@@ -3292,10 +3292,10 @@
           blur_traits,
           traits;
 
-        register const Quantum
+        const Quantum
           *magick_restrict r;
 
-        register ssize_t
+        ssize_t
           j;
 
         channel=GetPixelChannelChannel(image,i);
@@ -3440,7 +3440,7 @@
   MagickRealType
     *kernel;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3481,7 +3481,7 @@
         format[MagickPathExtent],
         *message;
 
-      register const MagickRealType
+      const MagickRealType
         *k;
 
       ssize_t
@@ -3554,14 +3554,14 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict l,
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3583,7 +3583,7 @@
       double
         intensity;
 
-      register ssize_t
+      ssize_t
         i;
 
       intensity=GetPixelIntensity(image,p+center);
@@ -3601,14 +3601,14 @@
           blur_traits,
           traits;
 
-        register const MagickRealType
+        const MagickRealType
           *magick_restrict k;
 
-        register const Quantum
+        const Quantum
           *magick_restrict luminance_pixels,
           *magick_restrict pixels;
 
-        register ssize_t
+        ssize_t
           u;
 
         ssize_t
@@ -3833,16 +3833,16 @@
     PrimaryInfo
       normal;
 
-    register const Quantum
+    const Quantum
       *magick_restrict center,
       *magick_restrict p,
       *magick_restrict post,
       *magick_restrict pre;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3862,7 +3862,7 @@
     normal.z=2.0*(double) QuantumRange;  /* constant Z of surface normal */
     for (x=0; x < (ssize_t) linear_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       /*
@@ -4011,7 +4011,7 @@
   KernelInfo
     *kernel_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -4171,10 +4171,10 @@
     const int
       id = GetOpenMPThreadId();
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -4318,13 +4318,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -4339,7 +4339,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
diff --git a/MagickCore/enhance.c b/MagickCore/enhance.c
index c757471..2506d2e 100644
--- a/MagickCore/enhance.c
+++ b/MagickCore/enhance.c
@@ -120,7 +120,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   log_mean=log(0.5);
@@ -304,7 +304,7 @@
 {
 #define NumberCLAHEGrays  (65536)
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -351,7 +351,7 @@
   */
   do
   {
-    register size_t
+    size_t
       *p;
 
     size_t
@@ -380,10 +380,10 @@
   const RectangleInfo *tile_info,const size_t number_bins,
   const unsigned short *lut,const unsigned short *pixels,size_t *histogram)
 {
-  register const unsigned short
+  const unsigned short
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -420,7 +420,7 @@
   */
   for (y=(ssize_t) tile->height; y > 0; y--)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=(ssize_t) tile->width; x > 0; x--)
@@ -459,7 +459,7 @@
     scale,
     sum;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -483,7 +483,7 @@
   MemoryInfo
     *tile_cache;
 
-  register unsigned short
+  unsigned short
     *p;
 
   size_t
@@ -522,7 +522,7 @@
   p=pixels;
   for (y=0; y < (ssize_t) clahe_info->y; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=0; x < (ssize_t) clahe_info->x; x++)
@@ -551,7 +551,7 @@
     RectangleInfo
       tile;
 
-    register ssize_t
+    ssize_t
       x;
 
     tile.height=tile_info->height;
@@ -698,10 +698,10 @@
   n=0;
   for (y=0; y < (ssize_t) clahe_info.height; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -743,10 +743,10 @@
   n=clahe_info.width*(tile_info.y >> 1);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -848,7 +848,7 @@
   PixelInfo
     *clut_map;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t adjust,
@@ -896,10 +896,10 @@
     PixelInfo
       pixel;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1055,7 +1055,7 @@
   PixelInfo
     *cdl_map;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1291,10 +1291,10 @@
     double
       luma;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1413,7 +1413,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1466,10 +1466,10 @@
       green,
       red;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1569,7 +1569,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1613,10 +1613,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1652,7 +1652,7 @@
     double
       intensity;
 
-    register ssize_t
+    ssize_t
       j;
 
     black[i]=0.0;
@@ -1682,7 +1682,7 @@
     sizeof(*stretch_map));
   for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
   {
-    register ssize_t
+    ssize_t
       j;
 
     for (j=0; j <= (ssize_t) MaxMap; j++)
@@ -1704,7 +1704,7 @@
   }
   if (image->storage_class == PseudoClass)
     {
-      register ssize_t
+      ssize_t
         j;
 
       /*
@@ -1750,10 +1750,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1766,7 +1766,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -1911,13 +1911,13 @@
     PixelInfo
       pixel;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     ssize_t
@@ -1946,7 +1946,7 @@
       PixelInfo
         aggregate;
 
-      register const Quantum
+      const Quantum
         *magick_restrict r;
 
       GetPixelInfo(image,&aggregate);
@@ -2047,7 +2047,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2090,10 +2090,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2129,7 +2129,7 @@
     double
       intensity;
 
-    register ssize_t
+    ssize_t
       j;
 
     intensity=0.0;
@@ -2145,7 +2145,7 @@
   (void) memset(white,0,sizeof(*white));
   for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
   {
-    register ssize_t
+    ssize_t
       j;
 
     black[i]=map[i];
@@ -2160,7 +2160,7 @@
   map=(double *) RelinquishMagickMemory(map);
   if (image->storage_class == PseudoClass)
     {
-      register ssize_t
+      ssize_t
         j;
 
       /*
@@ -2217,10 +2217,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2233,7 +2233,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -2325,7 +2325,7 @@
   Quantum
     *gamma_map;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2380,10 +2380,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2396,7 +2396,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -2511,10 +2511,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2739,10 +2739,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2916,7 +2916,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2960,10 +2960,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2976,7 +2976,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -3070,7 +3070,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -3112,10 +3112,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3128,7 +3128,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -3374,10 +3374,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -3649,7 +3649,7 @@
   MagickStatusType
     flags;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -3773,10 +3773,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3917,7 +3917,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -3957,10 +3957,10 @@
         MagickBooleanType
           sync;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -3974,7 +3974,7 @@
           }
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register ssize_t
+          ssize_t
             j;
 
           if (IsPixelGray(image,q) == MagickFalse)
@@ -4018,10 +4018,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -4034,7 +4034,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -4270,7 +4270,7 @@
   */
   if (image->storage_class == PseudoClass)
     {
-      register ssize_t
+      ssize_t
         i;
 
       if( sharpen != MagickFalse )
@@ -4318,10 +4318,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -4334,7 +4334,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -4436,10 +4436,10 @@
   image_view=AcquireAuthenticCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -4466,10 +4466,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
diff --git a/MagickCore/exception.c b/MagickCore/exception.c
index 305edcb..17ab46d 100644
--- a/MagickCore/exception.c
+++ b/MagickCore/exception.c
@@ -149,7 +149,7 @@
 
 static void *DestroyExceptionElement(void *exception)
 {
-  register ExceptionInfo
+  ExceptionInfo
     *p;
 
   p=(ExceptionInfo *) exception;
@@ -205,7 +205,7 @@
   LinkedListInfo
     *exceptions;
 
-  register const ExceptionInfo
+  const ExceptionInfo
     *p;
 
   ssize_t
@@ -687,7 +687,7 @@
 MagickExport void InheritException(ExceptionInfo *exception,
   const ExceptionInfo *relative)
 {
-  register const ExceptionInfo
+  const ExceptionInfo
     *p;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -995,7 +995,7 @@
   LinkedListInfo
     *exceptions;
 
-  register ExceptionInfo
+  ExceptionInfo
     *p;
 
   assert(exception != (ExceptionInfo *) NULL);
diff --git a/MagickCore/feature.c b/MagickCore/feature.c
index 7162bca..b024c7d 100644
--- a/MagickCore/feature.c
+++ b/MagickCore/feature.c
@@ -165,10 +165,10 @@
   MagickBooleanType
     status;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   q=GetCacheViewAuthenticPixels(edge_view,x,y,1,1,exception);
@@ -315,10 +315,10 @@
 #endif
   for (y=0; y < (ssize_t) edge_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -339,7 +339,7 @@
         dx,
         dy;
 
-      register const Quantum
+      const Quantum
         *magick_restrict kernel_pixels;
 
       ssize_t
@@ -427,10 +427,10 @@
 #endif
   for (y=0; y < (ssize_t) edge_image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -522,7 +522,7 @@
   edge_view=AcquireAuthenticCacheView(edge_image,exception);
   for (y=0; y < (ssize_t) edge_image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -532,7 +532,7 @@
       CannyInfo
         pixel;
 
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
       /*
@@ -659,7 +659,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i,
     r;
 
@@ -710,10 +710,10 @@
 #endif
   for (r=0; r < (ssize_t) image->rows; r++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -881,10 +881,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (r=0; r < (ssize_t) image->rows; r++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     ssize_t
@@ -1014,7 +1014,7 @@
     double
       normalize;
 
-    register ssize_t
+    ssize_t
       y;
 
     switch (i)
@@ -1056,7 +1056,7 @@
     normalize=PerceptibleReciprocal(normalize);
     for (y=0; y < (ssize_t) number_grays; y++)
     {
-      register ssize_t
+      ssize_t
         x;
 
       for (x=0; x < (ssize_t) number_grays; x++)
@@ -1080,12 +1080,12 @@
 #endif
   for (i=0; i < 4; i++)
   {
-    register ssize_t
+    ssize_t
       y;
 
     for (y=0; y < (ssize_t) number_grays; y++)
     {
-      register ssize_t
+      ssize_t
         x;
 
       for (x=0; x < (ssize_t) number_grays; x++)
@@ -1265,7 +1265,7 @@
 #endif
   for (i=0; i < 4; i++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=2; x < (ssize_t) (2*number_grays); x++)
@@ -1341,12 +1341,12 @@
 #endif
   for (i=0; i < 4; i++)
   {
-    register ssize_t
+    ssize_t
       y;
 
     for (y=0; y < (ssize_t) number_grays; y++)
     {
-      register ssize_t
+      ssize_t
         x;
 
       for (x=0; x < (ssize_t) number_grays; x++)
@@ -1456,7 +1456,7 @@
 #endif
   for (i=0; i < 4; i++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=0; x < (ssize_t) number_grays; x++)
@@ -1613,7 +1613,7 @@
 
     for (z=0; z < (ssize_t) number_grays; z++)
     {
-      register ssize_t
+      ssize_t
         y;
 
       ChannelStatistics
@@ -1622,7 +1622,7 @@
       (void) memset(&pixel,0,sizeof(pixel));
       for (y=0; y < (ssize_t) number_grays; y++)
       {
-        register ssize_t
+        ssize_t
           x;
 
         for (x=0; x < (ssize_t) number_grays; x++)
@@ -1874,7 +1874,7 @@
   PointInfo
     center;
 
-  register ssize_t
+  ssize_t
     y;
 
   size_t
@@ -1914,10 +1914,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1932,7 +1932,7 @@
     {
       if (GetPixelIntensity(image,p) > (QuantumRange/2.0))
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < 180; i++)
@@ -1999,7 +1999,7 @@
     line_count=threshold;
   for (y=0; y < (ssize_t) accumulator_height; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=0; x < (ssize_t) accumulator_width; x++)
@@ -2210,13 +2210,13 @@
 #endif
   for (y=0; y < (ssize_t) mean_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2239,7 +2239,7 @@
         mean_location,
         previous_location;
 
-      register ssize_t
+      ssize_t
         i;
 
       GetPixelInfo(image,&mean_pixel);
diff --git a/MagickCore/fourier.c b/MagickCore/fourier.c
index c035923..28b5d66 100644
--- a/MagickCore/fourier.c
+++ b/MagickCore/fourier.c
@@ -247,17 +247,17 @@
 #endif
   for (y=0; y < (ssize_t) rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict Ai,
       *magick_restrict Ar,
       *magick_restrict Bi,
       *magick_restrict Br;
 
-    register Quantum
+    Quantum
       *magick_restrict Ci,
       *magick_restrict Cr;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -277,7 +277,7 @@
       }
     for (x=0; x < (ssize_t) columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) number_channels; i++)
@@ -412,7 +412,7 @@
   MemoryInfo
     *source_info;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -458,7 +458,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -488,7 +488,7 @@
 static void CorrectPhaseLHS(const size_t width,const size_t height,
   double *fourier_pixels)
 {
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -521,10 +521,10 @@
     *magnitude_info,
     *phase_info;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -712,10 +712,10 @@
     *forward_info,
     *source_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1083,7 +1083,7 @@
 static MagickBooleanType InverseQuadrantSwap(const size_t width,
   const size_t height,const double *source,double *destination)
 {
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -1125,10 +1125,10 @@
     *magnitude_info,
     *phase_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1324,10 +1324,10 @@
   MemoryInfo
     *source_info;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
diff --git a/MagickCore/fx.c b/MagickCore/fx.c
index 5208ae9..b71cb7d 100644
--- a/MagickCore/fx.c
+++ b/MagickCore/fx.c
@@ -186,7 +186,7 @@
   FxInfo
     *fx_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned char
@@ -295,7 +295,7 @@
 */
 MagickPrivate FxInfo *DestroyFxInfo(FxInfo *fx_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   fx_info->exception=DestroyExceptionInfo(fx_info->exception);
@@ -392,7 +392,7 @@
   double
     statistic;
 
-  register const char
+  const char
     *p;
 
   channel_mask=UndefinedChannel;
@@ -507,7 +507,7 @@
   int
     c;
 
-  register size_t
+  size_t
     i;
 
   for (i=0; i <= length; i++)
@@ -535,7 +535,7 @@
   const char
     *subexpression;
 
-  register ssize_t
+  ssize_t
     level;
 
   level=0;
@@ -587,7 +587,7 @@
   PointInfo
     point;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1200,10 +1200,10 @@
     precedence,
     target;
 
-  register const char
+  const char
     *subexpression;
 
-  register int
+  int
     c;
 
   size_t
@@ -1487,7 +1487,7 @@
     sans,
     value;
 
-  register const char
+  const char
     *p;
 
   *beta=0.0;
@@ -2739,7 +2739,7 @@
 
 static FxInfo **DestroyFxThreadSet(FxInfo **fx_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(fx_info != (FxInfo **) NULL);
@@ -2762,7 +2762,7 @@
   FxInfo
     **fx_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2860,13 +2860,13 @@
     const int
       id = GetOpenMPThreadId();
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2880,7 +2880,7 @@
       }
     for (x=0; x < (ssize_t) fx_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
diff --git a/MagickCore/gem.c b/MagickCore/gem.c
index f37990c..a992dbb 100644
--- a/MagickCore/gem.c
+++ b/MagickCore/gem.c
@@ -675,7 +675,7 @@
     r,
     v;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1578,7 +1578,7 @@
       double
         poisson;
 
-      register ssize_t
+      ssize_t
         i;
 
       poisson=exp(-SigmaPoisson*QuantumScale*pixel);
@@ -1640,7 +1640,7 @@
     normalize,
     value;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/geometry.c b/MagickCore/geometry.c
index 33881ad..dd26a26 100644
--- a/MagickCore/geometry.c
+++ b/MagickCore/geometry.c
@@ -464,7 +464,7 @@
   char
     page[MaxTextExtent];
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(page_geometry != (char *) NULL);
@@ -758,7 +758,7 @@
   MagickStatusType
     flags;
 
-  register ssize_t
+  ssize_t
     i;
 
   GetAffineMatrix(affine_matrix);
diff --git a/MagickCore/histogram.c b/MagickCore/histogram.c
index b4e3005..9a08cde 100644
--- a/MagickCore/histogram.c
+++ b/MagickCore/histogram.c
@@ -195,15 +195,15 @@
   NodeInfo
     *node_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register size_t
+  size_t
     id,
     index,
     level;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -338,7 +338,7 @@
 static void DefineImageHistogram(const Image *image,NodeInfo *node_info,
   PixelInfo **histogram)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -353,7 +353,7 @@
       DefineImageHistogram(image,node_info->child[i],histogram);
   if (node_info->level == (MaxTreeDepth-1))
     {
-      register PixelInfo
+      PixelInfo
         *p;
 
       p=node_info->list;
@@ -392,7 +392,7 @@
 */
 static CubeInfo *DestroyCubeInfo(const Image *image,CubeInfo *cube_info)
 {
-  register Nodes
+  Nodes
     *nodes;
 
   /*
@@ -437,7 +437,7 @@
 */
 static void DestroyColorCube(const Image *image,NodeInfo *node_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -650,16 +650,16 @@
     pixel,
     target;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register NodeInfo
+  NodeInfo
     *node_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -904,7 +904,7 @@
     min,
     max;
 
-  register ssize_t
+  ssize_t
     i;
 
   MagickStatusType
@@ -1019,10 +1019,10 @@
   PixelInfo
     pixel;
 
-  register PixelInfo
+  PixelInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1126,7 +1126,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1142,10 +1142,10 @@
         node_info->child[i],exception);
   if (node_info->level == (MaxTreeDepth-1))
     {
-      register PixelInfo
+      PixelInfo
         *p;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       status=MagickTrue;
diff --git a/MagickCore/identify.c b/MagickCore/identify.c
index 09eb141..4478fbf 100644
--- a/MagickCore/identify.c
+++ b/MagickCore/identify.c
@@ -134,7 +134,7 @@
   ChannelStatistics
     *channel_statistics;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -169,10 +169,10 @@
   }
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -309,7 +309,7 @@
   n=0;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *p;
 
     ssize_t
@@ -352,7 +352,7 @@
     powers[MaximumNumberOfImageMoments] =
       { 1.0, 2.0, 3.0, 3.0, 6.0, 4.0, 6.0, 4.0 };
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -383,7 +383,7 @@
 static ssize_t PrintChannelPerceptualHash(Image *image,FILE *file,
   const ChannelPerceptualHash *channel_phash)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -407,7 +407,7 @@
     PixelTrait
       traits;
 
-    register ssize_t
+    ssize_t
       j;
 
     channel=GetPixelChannelChannel(image,i);
@@ -419,7 +419,7 @@
     n=FormatLocaleFile(file,"    Channel %.20g:\n",(double) channel);
     for (j=0; j < MaximumNumberOfPerceptualHashes; j++)
     {
-      register ssize_t
+      ssize_t
         k;
 
       n+=FormatLocaleFile(file,"      PH%.20g: ",(double) j+1);
@@ -513,10 +513,10 @@
   MagickBooleanType
     ping;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1083,7 +1083,7 @@
           PixelInfo
             pixel;
 
-          register PixelInfo
+          PixelInfo
             *magick_restrict c;
 
           GetPixelInfo(image,&pixel);
@@ -1218,7 +1218,7 @@
       ImageInfo
         *image_info;
 
-      register char
+      char
         *d,
         *q;
 
@@ -1286,7 +1286,7 @@
       *bounding_box,
       *convex_hull;
 
-    register ssize_t
+    ssize_t
       n;
 
     size_t
@@ -1358,7 +1358,7 @@
               record,
               sentinel;
 
-            register ssize_t
+            ssize_t
               j;
 
             size_t
diff --git a/MagickCore/image-view.c b/MagickCore/image-view.c
index 2ac0022..5fb865a 100644
--- a/MagickCore/image-view.c
+++ b/MagickCore/image-view.c
@@ -253,11 +253,11 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict duplex_pixels,
       *magick_restrict pixels;
 
-    register Quantum
+    Quantum
       *magick_restrict destination_pixels;
 
     if (status == MagickFalse)
@@ -563,7 +563,7 @@
     const int
       id = GetOpenMPThreadId();
 
-    register const Quantum
+    const Quantum
       *pixels;
 
     if (status == MagickFalse)
@@ -911,7 +911,7 @@
     MagickBooleanType
       sync;
 
-    register Quantum
+    Quantum
       *magick_restrict pixels;
 
     if (status == MagickFalse)
@@ -1040,10 +1040,10 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict pixels;
 
-    register Quantum
+    Quantum
       *magick_restrict destination_pixels;
 
     if (status == MagickFalse)
@@ -1169,7 +1169,7 @@
     const int
       id = GetOpenMPThreadId();
 
-    register Quantum
+    Quantum
       *magick_restrict pixels;
 
     if (status == MagickFalse)
diff --git a/MagickCore/image.c b/MagickCore/image.c
index 3f6925f..4e9240a 100644
--- a/MagickCore/image.c
+++ b/MagickCore/image.c
@@ -446,7 +446,7 @@
   RectangleInfo
     geometry;
 
-  register const Image
+  const Image
     *next;
 
   size_t
@@ -545,13 +545,13 @@
       PixelInfo
         pixel;
 
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register ssize_t
+      ssize_t
         x;
 
       if (status == MagickFalse)
@@ -1081,13 +1081,13 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1103,7 +1103,7 @@
       }
     for (x=0; x < (ssize_t) geometry->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1476,13 +1476,13 @@
   mask_view=AcquireAuthenticCacheView(mask_image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1646,7 +1646,7 @@
   MagickBooleanType
     canonical;
 
-  register const char
+  const char
     *p;
 
   ssize_t
@@ -1695,10 +1695,10 @@
         const char
           *option;
 
-        register char
+        char
           *r;
 
-        register ssize_t
+        ssize_t
           i;
 
         ssize_t
@@ -1817,10 +1817,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1833,7 +1833,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1889,7 +1889,7 @@
 */
 MagickExport MagickBooleanType IsImageObject(const Image *image)
 {
-  register const Image
+  const Image
     *p;
 
   assert(image != (Image *) NULL);
@@ -1930,7 +1930,7 @@
     magick[MagickPathExtent],
     filename[MagickPathExtent];
 
-  register const Image
+  const Image
     *p;
 
   assert(image != (Image *) NULL);
@@ -2067,10 +2067,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2267,10 +2267,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2346,10 +2346,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2432,10 +2432,10 @@
   image_view=AcquireAuthenticCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2546,10 +2546,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2724,7 +2724,7 @@
   MagickBooleanType
     status;
 
-  register const char
+  const char
     *p;
 
   ssize_t
@@ -2812,7 +2812,7 @@
       MagickFormatType
         format_type;
 
-      register ssize_t
+      ssize_t
         i;
 
       static const char
@@ -3248,13 +3248,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3404,10 +3404,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3544,10 +3544,10 @@
     left_geometry,
     right_geometry;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     y;
 
@@ -3615,10 +3615,10 @@
     bottom_geometry,
     top_geometry;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -3695,7 +3695,7 @@
   RectangleInfo
     geometry;
 
-  register const Image
+  const Image
     *next;
 
   size_t
@@ -3910,10 +3910,10 @@
     Quantum
       index;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
diff --git a/MagickCore/layer.c b/MagickCore/layer.c
index 63bda6d..87161c9 100644
--- a/MagickCore/layer.c
+++ b/MagickCore/layer.c
@@ -109,10 +109,10 @@
     (void) SetImageAlphaChannel(image,OpaqueAlphaChannel,exception);
   for (y=0; y < (ssize_t) bounds->height; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=GetAuthenticPixels(image,bounds->x,bounds->y+y,bounds->width,1,exception);
@@ -165,11 +165,11 @@
 static MagickBooleanType IsBoundsCleared(const Image *image1,
   const Image *image2,RectangleInfo *bounds,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -233,7 +233,7 @@
     *dispose_image,
     *previous;
 
-  register Image
+  Image
     *next;
 
   RectangleInfo
@@ -402,7 +402,7 @@
   RectangleInfo
     bounds;
 
-  register Image
+  Image
     *image,
     *next;
 
@@ -619,11 +619,11 @@
     pixel1,
     pixel2;
 
-  register const Quantum
+  const Quantum
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -773,10 +773,10 @@
   RectangleInfo
     *bounds;
 
-  register const Image
+  const Image
     *next;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image != (const Image *) NULL);
@@ -961,10 +961,10 @@
   DisposeType
     *disposals;
 
-  register const Image
+  const Image
     *curr;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image != (const Image *) NULL);
@@ -1491,7 +1491,7 @@
   Image
     *dispose_image;
 
-  register Image
+  Image
     *next;
 
   /*
@@ -1619,7 +1619,7 @@
   RectangleInfo
     bounds;
 
-  register Image
+  Image
     *image,
     *next;
 
@@ -1949,7 +1949,7 @@
   RectangleInfo
     page;
 
-  register const Image
+  const Image
     *next;
 
   size_t
diff --git a/MagickCore/linked-list.c b/MagickCore/linked-list.c
index b23d60d..787475a 100644
--- a/MagickCore/linked-list.c
+++ b/MagickCore/linked-list.c
@@ -111,7 +111,7 @@
 MagickExport MagickBooleanType AppendValueToLinkedList(
   LinkedListInfo *list_info,const void *value)
 {
-  register ElementInfo
+  ElementInfo
     *next;
 
   assert(list_info != (LinkedListInfo *) NULL);
@@ -168,7 +168,7 @@
   ElementInfo
     *element;
 
-  register ElementInfo
+  ElementInfo
     *next;
 
   assert(list_info != (LinkedListInfo *) NULL);
@@ -222,7 +222,7 @@
   ElementInfo
     *entry;
 
-  register ElementInfo
+  ElementInfo
     *next;
 
   assert(list_info != (LinkedListInfo *) NULL);
@@ -382,10 +382,10 @@
 MagickExport void *GetValueFromLinkedList(LinkedListInfo *list_info,
   const size_t index)
 {
-  register ElementInfo
+  ElementInfo
     *next;
 
-  register ssize_t
+  ssize_t
     i;
 
   void
@@ -447,10 +447,10 @@
 MagickExport MagickBooleanType InsertValueInLinkedList(
   LinkedListInfo *list_info,const size_t index,const void *value)
 {
-  register ElementInfo
+  ElementInfo
     *next;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(list_info != (LinkedListInfo *) NULL);
@@ -552,10 +552,10 @@
   ElementInfo
     *element;
 
-  register ElementInfo
+  ElementInfo
     *next;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(list_info != (LinkedListInfo *) NULL);
@@ -666,10 +666,10 @@
 MagickExport MagickBooleanType LinkedListToArray(LinkedListInfo *list_info,
   void **array)
 {
-  register ElementInfo
+  ElementInfo
     *next;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(list_info != (LinkedListInfo *) NULL);
@@ -831,7 +831,7 @@
   ElementInfo
     *next;
 
-  register ssize_t
+  ssize_t
     i;
 
   void
diff --git a/MagickCore/list.c b/MagickCore/list.c
index 8ca4c14..cfd9d4e 100644
--- a/MagickCore/list.c
+++ b/MagickCore/list.c
@@ -79,7 +79,7 @@
 */
 MagickExport void AppendImageToList(Image **images,const Image *append)
 {
-  register Image
+  Image
     *p,
     *q;
 
@@ -131,7 +131,7 @@
     *clone,
     *image;
 
-  register Image
+  Image
     *p;
 
   if (images == (Image *) NULL)
@@ -219,7 +219,7 @@
     *clone_images,
     *image;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -383,7 +383,7 @@
   MagickBooleanType
     *delete_list;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -527,7 +527,7 @@
     *clone_images,
     *duplicate_images;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -573,7 +573,7 @@
 */
 MagickExport Image *GetFirstImageInList(const Image *images)
 {
-  register const Image
+  const Image
     *p;
 
   if (images == (Image *) NULL)
@@ -617,10 +617,10 @@
 */
 MagickExport Image *GetImageFromList(const Image *images,const ssize_t index)
 {
-  register const Image
+  const Image
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   if (images == (Image *) NULL)
@@ -669,7 +669,7 @@
 */
 MagickExport ssize_t GetImageIndexInList(const Image *images)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if (images == (const Image *) NULL)
@@ -708,7 +708,7 @@
 */
 MagickExport size_t GetImageListLength(const Image *images)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if (images == (Image *) NULL)
@@ -749,7 +749,7 @@
 */
 MagickExport Image *GetLastImageInList(const Image *images)
 {
-  register const Image
+  const Image
     *p;
 
   if (images == (Image *) NULL)
@@ -860,7 +860,7 @@
   Image
     **group;
 
-  register ssize_t
+  ssize_t
     i;
 
   if (images == (Image *) NULL)
@@ -1015,7 +1015,7 @@
 */
 MagickExport Image *RemoveImageFromList(Image **images)
 {
-  register Image
+  Image
     *p;
 
   assert(images != (Image **) NULL);
@@ -1296,7 +1296,7 @@
   Image
     *next;
 
-  register Image
+  Image
     *p;
 
   assert(images != (Image **) NULL);
@@ -1351,7 +1351,7 @@
     *image,
     *split;
 
-  register size_t
+  size_t
     i;
 
   assert(images != (Image **) NULL);
@@ -1429,7 +1429,7 @@
 */
 MagickExport void SyncImageList(Image *images)
 {
-  register Image
+  Image
     *p,
     *q;
 
diff --git a/MagickCore/locale.c b/MagickCore/locale.c
index 31d74b4..d67c1f1 100644
--- a/MagickCore/locale.c
+++ b/MagickCore/locale.c
@@ -169,7 +169,7 @@
 
 static void *DestroyLocaleNode(void *locale_info)
 {
-  register LocaleInfo
+  LocaleInfo
     *p;
 
   p=(LocaleInfo *) locale_info;
@@ -584,10 +584,10 @@
   const LocaleInfo
     **messages;
 
-  register const LocaleInfo
+  const LocaleInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -660,7 +660,7 @@
 
 static int LocaleTagCompare(const void *x,const void *y)
 {
-  register char
+  char
     **p,
     **q;
 
@@ -679,10 +679,10 @@
   char
     **messages;
 
-  register const LocaleInfo
+  const LocaleInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -914,7 +914,7 @@
           char
             *locale;
 
-          register const char
+          const char
             *p;
 
           locale=(char *) NULL;
@@ -1032,7 +1032,7 @@
   const LocaleInfo
     **locale_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1104,7 +1104,7 @@
 
 static void ChopLocaleComponents(char *path,const size_t components)
 {
-  register char
+  char
     *p;
 
   ssize_t
@@ -1162,7 +1162,7 @@
   MagickStatusType
     status;
 
-  register char
+  char
     *p;
 
   size_t
@@ -1411,7 +1411,7 @@
   if (q == (char *) NULL)
     return(1);
   {
-    register const unsigned char
+    const unsigned char
       *r = (const unsigned char *) p,
       *s = (const unsigned char *) q;
 
@@ -1446,7 +1446,7 @@
 */
 MagickExport void LocaleLower(char *string)
 {
-  register char
+  char
     *q;
 
   assert(string != (char *) NULL);
@@ -1537,11 +1537,11 @@
   if (length == 0)
     return(0);
   {
-    register const unsigned char
+    const unsigned char
       *s = (const unsigned char *) p,
       *t = (const unsigned char *) q;
 
-    register size_t
+    size_t
       n = length;
 
     for (n--; (*s != '\0') && (*t != '\0') && (n != 0) && ((*s == *t) ||
@@ -1575,7 +1575,7 @@
 */
 MagickExport void LocaleUpper(char *string)
 {
-  register char
+  char
     *q;
 
   assert(string != (char *) NULL);
diff --git a/MagickCore/log.c b/MagickCore/log.c
index 1b2c02c..1dcdf56 100644
--- a/MagickCore/log.c
+++ b/MagickCore/log.c
@@ -273,7 +273,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -308,7 +308,7 @@
     LogInfo
       *log_info;
 
-    register const LogMapInfo
+    const LogMapInfo
       *p;
 
     p=LogMap+i;
@@ -403,7 +403,7 @@
 */
 static LogInfo *GetLogInfo(const char *name,ExceptionInfo *exception)
 {
-  register LogInfo
+  LogInfo
     *p;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -487,10 +487,10 @@
   const LogInfo
     **preferences;
 
-  register const LogInfo
+  const LogInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -561,7 +561,7 @@
 
 static int LogCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -580,10 +580,10 @@
   char
     **preferences;
 
-  register const LogInfo
+  const LogInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -761,7 +761,7 @@
   const LogInfo
     **log_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1123,7 +1123,7 @@
 
 static void *DestroyLogElement(void *log_info)
 {
-  register LogInfo
+  LogInfo
     *p;
 
   p=(LogInfo *) log_info;
@@ -1206,10 +1206,10 @@
   LogInfo
     *log_info;
 
-  register char
+  char
     *q;
 
-  register const char
+  const char
     *p;
 
   size_t
@@ -1360,7 +1360,7 @@
       }
       case 'm':
       {
-        register const char
+        const char
           *r;
 
         for (r=module+strlen(module)-1; r > module; r--)
@@ -1426,10 +1426,10 @@
   char
     *filename;
 
-  register char
+  char
     *q;
 
-  register const char
+  const char
     *p;
 
   size_t
@@ -1704,10 +1704,10 @@
   LogHandlerType
     handler_mask;
 
-  register const char
+  const char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/magic.c b/MagickCore/magic.c
index d3058fe..4d51470 100644
--- a/MagickCore/magic.c
+++ b/MagickCore/magic.c
@@ -192,7 +192,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   list=NewLinkedList(0);
@@ -205,7 +205,7 @@
     MagicInfo
       *magic_info;
 
-    register const MagicMapInfo
+    const MagicMapInfo
       *p;
 
     p=MagicMap+i;
@@ -280,7 +280,7 @@
 MagickExport const MagicInfo *GetMagicInfo(const unsigned char *magic,
   const size_t length,ExceptionInfo *exception)
 {
-  register const MagicInfo
+  const MagicInfo
     *p;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -362,7 +362,7 @@
 */
 MagickExport size_t GetMagicPatternExtent(ExceptionInfo *exception)
 {
-  register const MagicInfo
+  const MagicInfo
     *p;
 
   size_t
@@ -447,10 +447,10 @@
   const MagicInfo
     **aliases;
 
-  register const MagicInfo
+  const MagicInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -523,7 +523,7 @@
 
 static int MagicCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     *p,
     *q;
 
@@ -542,10 +542,10 @@
   char
     **aliases;
 
-  register const MagicInfo
+  const MagicInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -679,7 +679,7 @@
   const MagicInfo
     **magic_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -775,7 +775,7 @@
 
 static void *DestroyMagicElement(void *magic_info)
 {
-  register MagicInfo
+  MagicInfo
     *p;
 
   p=(MagicInfo *) magic_info;
diff --git a/MagickCore/magick.c b/MagickCore/magick.c
index 0e60ffc..2244d1d 100644
--- a/MagickCore/magick.c
+++ b/MagickCore/magick.c
@@ -296,7 +296,7 @@
   MagickBooleanType
     status;
 
-  register const MagickInfo
+  const MagickInfo
     *p;
 
   (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
@@ -610,7 +610,7 @@
 MagickExport const MagickInfo *GetMagickInfo(const char *name,
   ExceptionInfo *exception)
 {
-  register const MagickInfo
+  const MagickInfo
     *magick_info;
 
   /*
@@ -703,10 +703,10 @@
   const MagickInfo
     **formats;
 
-  register const MagickInfo
+  const MagickInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -777,7 +777,7 @@
 
 static int MagickCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -796,10 +796,10 @@
   char
     **formats;
 
-  register const MagickInfo
+  const MagickInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1067,7 +1067,7 @@
 
 static void *DestroyMagickNode(void *magick_info)
 {
-  register MagickInfo
+  MagickInfo
     *p;
 
   p=(MagickInfo *) magick_info;
@@ -1177,7 +1177,7 @@
   const MagickInfo
     **magick_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1803,7 +1803,7 @@
 */
 MagickExport MagickBooleanType UnregisterMagickInfo(const char *name)
 {
-  register const MagickInfo
+  const MagickInfo
     *p;
 
   MagickBooleanType
diff --git a/MagickCore/matrix.c b/MagickCore/matrix.c
index 977081e..a8207b1 100644
--- a/MagickCore/matrix.c
+++ b/MagickCore/matrix.c
@@ -133,7 +133,7 @@
   const MatrixInfo *magick_restrict matrix_info,const MagickOffsetType offset,
   const MagickSizeType length,const unsigned char *magick_restrict buffer)
 {
-  register MagickOffsetType
+  MagickOffsetType
     i;
 
   ssize_t
@@ -320,7 +320,7 @@
   double
     **matrix;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -494,7 +494,7 @@
     max,
     scale;
 
-  register ssize_t
+  ssize_t
     i,
     j,
     k;
@@ -665,7 +665,7 @@
   const MatrixInfo *magick_restrict matrix_info,const MagickOffsetType offset,
   const MagickSizeType length,unsigned char *magick_restrict buffer)
 {
-  register MagickOffsetType
+  MagickOffsetType
     i;
 
   ssize_t
@@ -830,7 +830,7 @@
   const double *terms,const double *results,const size_t rank,
   const size_t number_vectors)
 {
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -902,7 +902,7 @@
   max_value=min_value;
   for (y=0; y < (ssize_t) matrix_info->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=0; x < (ssize_t) matrix_info->columns; x++)
@@ -947,10 +947,10 @@
     double
       value;
 
-    register Quantum
+    Quantum
       *q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1002,7 +1002,7 @@
 */
 MagickExport MagickBooleanType NullMatrix(MatrixInfo *matrix_info)
 {
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -1066,7 +1066,7 @@
 MagickExport double **RelinquishMagickMatrix(double **matrix,
   const size_t number_rows)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if (matrix == (double **) NULL )
diff --git a/MagickCore/memory.c b/MagickCore/memory.c
index 827847b..4bbf090 100644
--- a/MagickCore/memory.c
+++ b/MagickCore/memory.c
@@ -377,7 +377,7 @@
 
 static inline size_t AllocationPolicy(size_t size)
 {
-  register size_t
+  size_t
     blocksize;
 
   /*
@@ -405,7 +405,7 @@
 
 static inline void InsertFreeBlock(void *block,const size_t i)
 {
-  register void
+  void
     *next,
     *previous;
 
@@ -432,7 +432,7 @@
 
 static inline void RemoveFreeBlock(void *block,const size_t i)
 {
-  register void
+  void
     *next,
     *previous;
 
@@ -448,10 +448,10 @@
 
 static void *AcquireBlock(size_t size)
 {
-  register size_t
+  size_t
     i;
 
-  register void
+  void
     *block;
 
   /*
@@ -524,7 +524,7 @@
 */
 MagickExport void *AcquireMagickMemory(const size_t size)
 {
-  register void
+  void
     *memory;
 
 #if !defined(MAGICKCORE_ANONYMOUS_MEMORY_SUPPORT)
@@ -537,7 +537,7 @@
       LockSemaphoreInfo(memory_semaphore);
       if (free_segments == (DataSegmentInfo *) NULL)
         {
-          register ssize_t
+          ssize_t
             i;
 
           assert(2*sizeof(size_t) > (size_t) (~SizeMask));
@@ -598,7 +598,7 @@
 */
 MagickExport void *AcquireCriticalMemory(const size_t size)
 {
-  register void
+  void
     *memory;
 
   /*
@@ -810,10 +810,10 @@
 MagickExport void *CopyMagickMemory(void *magick_restrict destination,
   const void *magick_restrict source,const size_t size)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned char
+  unsigned char
     *q;
 
   assert(destination != (void *) NULL);
@@ -858,7 +858,7 @@
 MagickExport void DestroyMagickMemory(void)
 {
 #if defined(MAGICKCORE_ANONYMOUS_MEMORY_SUPPORT)
-  register ssize_t
+  ssize_t
     i;
 
   if (memory_semaphore == (SemaphoreInfo *) NULL)
@@ -910,10 +910,10 @@
   MagickBooleanType
     mapped;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register void
+  void
     *block;
 
   size_t
@@ -1340,7 +1340,7 @@
 #if defined(MAGICKCORE_ANONYMOUS_MEMORY_SUPPORT)
 static inline void *ResizeBlock(void *block,size_t size)
 {
-  register void
+  void
     *memory;
 
   if (block == (void *) NULL)
@@ -1359,7 +1359,7 @@
 
 MagickExport void *ResizeMagickMemory(void *memory,const size_t size)
 {
-  register void
+  void
     *block;
 
   if (memory == (void *) NULL)
diff --git a/MagickCore/mime.c b/MagickCore/mime.c
index 2e05b84..d1f4cc9 100644
--- a/MagickCore/mime.c
+++ b/MagickCore/mime.c
@@ -223,13 +223,13 @@
   EndianType
     endian;
 
-  register const MimeInfo
+  const MimeInfo
     *p;
 
-  register const unsigned char
+  const unsigned char
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -436,10 +436,10 @@
   const MimeInfo
     **aliases;
 
-  register const MimeInfo
+  const MimeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -512,7 +512,7 @@
 
 static int MimeCompare(const void *x,const void *y)
 {
-  register char
+  char
     *p,
     *q;
 
@@ -531,10 +531,10 @@
   char
     **aliases;
 
-  register const MimeInfo
+  const MimeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -697,7 +697,7 @@
   const MimeInfo
     **mime_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -874,7 +874,7 @@
         const char
           *p;
 
-        register unsigned char
+        unsigned char
           *q;
 
         token=AcquireString(attribute);
@@ -1054,7 +1054,7 @@
 
 static void *DestroyMimeElement(void *mime_info)
 {
-  register MimeInfo
+  MimeInfo
     *p;
 
   p=(MimeInfo *) mime_info;
diff --git a/MagickCore/module.c b/MagickCore/module.c
index e270d34..789a9e5 100644
--- a/MagickCore/module.c
+++ b/MagickCore/module.c
@@ -291,10 +291,10 @@
   const ModuleInfo
     **modules;
 
-  register const ModuleInfo
+  const ModuleInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -369,7 +369,7 @@
 
 static int ModuleCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -399,7 +399,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -566,7 +566,7 @@
   }
   if (module_path != (char *) NULL)
     {
-      register char
+      char
         *p,
         *q;
 
@@ -850,7 +850,7 @@
   ExceptionInfo
     *exception;
 
-  register ModuleInfo
+  ModuleInfo
     *p;
 
   exception=AcquireExceptionInfo();
@@ -1073,7 +1073,7 @@
     **modules,
     path[MagickPathExtent];
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1238,7 +1238,7 @@
   PolicyRights
     rights;
 
-  register const CoderInfo
+  const CoderInfo
     *p;
 
   size_t
@@ -1361,7 +1361,7 @@
   char
     **modules;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/montage.c b/MagickCore/montage.c
index 30eaff7..f95516b 100644
--- a/MagickCore/montage.c
+++ b/MagickCore/montage.c
@@ -363,7 +363,7 @@
   MagickStatusType
     flags;
 
-  register ssize_t
+  ssize_t
     i;
 
   RectangleInfo
diff --git a/MagickCore/morphology.c b/MagickCore/morphology.c
index c58ee9f..792c5e3 100644
--- a/MagickCore/morphology.c
+++ b/MagickCore/morphology.c
@@ -223,7 +223,7 @@
     *p,
     *end;
 
-  register ssize_t
+  ssize_t
     i;
 
   double
@@ -954,10 +954,10 @@
   KernelInfo
     *kernel;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register ssize_t
+  ssize_t
     u,
     v;
 
@@ -2212,7 +2212,7 @@
 */
 MagickExport KernelInfo *CloneKernelInfo(const KernelInfo *kernel)
 {
-  register ssize_t
+  ssize_t
     i;
 
   KernelInfo
@@ -2311,9 +2311,9 @@
     { /* Do a Flop by reversing each row. */
       size_t
         y;
-      register ssize_t
+      ssize_t
         x,r;
-      register double
+      double
         *k,t;
 
       for ( y=0, k=kernel->values; y < kernel->height; y++, k+=kernel->width)
@@ -2392,7 +2392,7 @@
 static MagickBooleanType SameKernelInfo(const KernelInfo *kernel1,
      const KernelInfo *kernel2)
 {
-  register size_t
+  size_t
     i;
 
   /* check size and origin location */
@@ -2480,7 +2480,7 @@
 */
 static void CalcKernelMetaData(KernelInfo *kernel)
 {
-  register size_t
+  size_t
     i;
 
   kernel->minimum = kernel->maximum = 0.0;
@@ -2572,7 +2572,7 @@
   OffsetInfo
     offset;
 
-  register ssize_t
+  ssize_t
     j,
     y;
 
@@ -2642,7 +2642,7 @@
 
   if ((method == ConvolveMorphology) && (kernel->width == 1))
     {
-      register ssize_t
+      ssize_t
         x;
 
       /*
@@ -2660,13 +2660,13 @@
         const int
           id = GetOpenMPThreadId();
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           r;
 
         ssize_t
@@ -2686,7 +2686,7 @@
         center=(ssize_t) GetPixelChannels(image)*offset.y;
         for (r=0; r < (ssize_t) image->rows; r++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2703,13 +2703,13 @@
               morphology_traits,
               traits;
 
-            register const MagickRealType
+            const MagickRealType
               *magick_restrict k;
 
-            register const Quantum
+            const Quantum
               *magick_restrict pixels;
 
-            register ssize_t
+            ssize_t
               v;
 
             size_t
@@ -2806,13 +2806,13 @@
     const int
       id = GetOpenMPThreadId();
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     ssize_t
@@ -2833,7 +2833,7 @@
       GetPixelChannels(image)*offset.x);
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2853,14 +2853,14 @@
           morphology_traits,
           traits;
 
-        register const MagickRealType
+        const MagickRealType
           *magick_restrict k;
 
-        register const Quantum
+        const Quantum
           *magick_restrict pixels,
           *magick_restrict quantum_pixels;
 
-        register ssize_t
+        ssize_t
           u;
 
         size_t
@@ -3306,13 +3306,13 @@
   width=image->columns+kernel->width-1;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -3336,7 +3336,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -3350,13 +3350,13 @@
         PixelTrait
           traits;
 
-        register const MagickRealType
+        const MagickRealType
           *magick_restrict k;
 
-        register const Quantum
+        const Quantum
           *magick_restrict pixels;
 
-        register ssize_t
+        ssize_t
           u;
 
         ssize_t
@@ -3469,13 +3469,13 @@
   morphology_view=AcquireAuthenticCacheView(image,exception);
   for (y=(ssize_t) image->rows-1; y >= 0; y--)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -3500,7 +3500,7 @@
     q+=(image->columns-1)*GetPixelChannels(image);
     for (x=(ssize_t) image->columns-1; x >= 0; x--)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -3514,13 +3514,13 @@
         PixelTrait
           traits;
 
-        register const MagickRealType
+        const MagickRealType
           *magick_restrict k;
 
-        register const Quantum
+        const Quantum
           *magick_restrict pixels;
 
-        register ssize_t
+        ssize_t
           u;
 
         ssize_t
@@ -4365,10 +4365,10 @@
         }
       else if ( kernel->width == kernel->height )
         { /* Rotate a square array of values by 90 degrees */
-          { register ssize_t
+          { ssize_t
               i,j,x,y;
 
-            register MagickRealType
+            MagickRealType
               *k,t;
 
             k=kernel->values;
@@ -4382,7 +4382,7 @@
                 }
           }
           /* rotate the origin - relative to center of array */
-          { register ssize_t x,y;
+          { ssize_t x,y;
             x = (ssize_t) (kernel->x*2-kernel->width+1);
             y = (ssize_t) (kernel->y*2-kernel->height+1);
             kernel->x = (ssize_t) ( -y +(ssize_t) kernel->width-1)/2;
@@ -4404,7 +4404,7 @@
       MagickRealType
         t;
 
-      register MagickRealType
+      MagickRealType
         *k;
 
       ssize_t
@@ -4572,11 +4572,11 @@
 MagickExport void ScaleKernelInfo(KernelInfo *kernel,
   const double scaling_factor,const GeometryFlags normalize_flags)
 {
-  register double
+  double
     pos_scale,
     neg_scale;
 
-  register ssize_t
+  ssize_t
     i;
 
   /* do the other kernels in a multi-kernel list first */
@@ -4776,7 +4776,7 @@
 */
 MagickPrivate void ZeroKernelNans(KernelInfo *kernel)
 {
-  register size_t
+  size_t
     i;
 
   /* do the other kernels in a multi-kernel list first */
diff --git a/MagickCore/nt-base.c b/MagickCore/nt-base.c
index 061ce6c..489dc77 100644
--- a/MagickCore/nt-base.c
+++ b/MagickCore/nt-base.c
@@ -1328,7 +1328,7 @@
 */
 MagickPrivate void NTGhostscriptEXE(char *path,int length)
 {
-  register char
+  char
     *p;
 
   static char
@@ -1402,7 +1402,7 @@
     *directory,
     filename[MagickPathExtent];
 
-  register char
+  char
     *p,
     *q;
 
@@ -1901,7 +1901,7 @@
   char
     path[MagickPathExtent];
 
-  register const char
+  const char
     *p,
     *q;
 
diff --git a/MagickCore/opencl.c b/MagickCore/opencl.c
index abf6467..0a24a9b 100644
--- a/MagickCore/opencl.c
+++ b/MagickCore/opencl.c
@@ -1436,7 +1436,7 @@
   cl_event
     *events;
 
-  register size_t
+  size_t
     i;
 
   size_t
diff --git a/MagickCore/option.c b/MagickCore/option.c
index f2e5d2a..29811c1 100644
--- a/MagickCore/option.c
+++ b/MagickCore/option.c
@@ -2205,7 +2205,7 @@
     key[MagickPathExtent],
     value[MagickPathExtent];
 
-  register char
+  char
     *p;
 
   assert(image_info != (ImageInfo *) NULL);
@@ -2457,13 +2457,13 @@
   MagickBooleanType
     negate;
 
-  register char
+  char
     *q;
 
-  register const char
+  const char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2550,7 +2550,7 @@
 */
 MagickExport const OptionInfo *GetCommandOptionInfo(const char *option)
 {
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; CommandOptions[i].mnemonic != (char *) NULL; i++)
@@ -2589,7 +2589,7 @@
   const OptionInfo
     *option_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   option_info=GetOptionInfo(option);
@@ -2707,7 +2707,7 @@
   const OptionInfo
     *option_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   option_info=GetOptionInfo(option);
@@ -2760,7 +2760,7 @@
   MagickBooleanType
     member;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -2827,7 +2827,7 @@
   const OptionInfo
     *option_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   magick_unreferenced(exception);
@@ -2870,7 +2870,7 @@
 */
 MagickExport ssize_t ParseChannelOption(const char *channels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3008,13 +3008,13 @@
   MagickBooleanType
     negate;
 
-  register char
+  char
     *q;
 
-  register const char
+  const char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickCore/paint.c b/MagickCore/paint.c
index 7ea0d62..efb8cce 100644
--- a/MagickCore/paint.c
+++ b/MagickCore/paint.c
@@ -150,7 +150,7 @@
     fill_color,
     pixel;
 
-  register SegmentInfo
+  SegmentInfo
     *s;
 
   SegmentInfo
@@ -215,13 +215,13 @@
   floodplane_view=AcquireAuthenticCacheView(floodplane_image,exception);
   while (s > segment_stack)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -321,13 +321,13 @@
   status=MagickTrue;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -647,7 +647,7 @@
 
 static size_t **DestroyHistogramThreadSet(size_t **histogram)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(histogram != (size_t **) NULL);
@@ -660,7 +660,7 @@
 
 static size_t **AcquireHistogramThreadSet(const size_t count)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -757,16 +757,16 @@
 #endif
   for (y=0; y < (ssize_t) linear_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register size_t
+    size_t
       *histogram;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -783,7 +783,7 @@
     histogram=histograms[GetOpenMPThreadId()];
     for (x=0; x < (ssize_t) linear_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i,
         u;
 
@@ -951,10 +951,10 @@
     PixelInfo
       pixel;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1098,10 +1098,10 @@
     PixelInfo
       pixel;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1229,10 +1229,10 @@
     PixelInfo
       pixel;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c
index 85bf51e..d2c8867 100644
--- a/MagickCore/pixel.c
+++ b/MagickCore/pixel.c
@@ -95,7 +95,7 @@
   PixelChannelMap
     *channel_map;
 
-  register ssize_t
+  ssize_t
     i;
 
   channel_map=(PixelChannelMap *) AcquireQuantumMemory(MaxPixelChannels,
@@ -510,13 +510,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *magick_restrict q;
 
   size_t
@@ -655,7 +655,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -717,13 +717,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register double
+  double
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -862,7 +862,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -925,13 +925,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register float
+  float
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -1070,7 +1070,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -1132,13 +1132,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned int
+  unsigned int
     *magick_restrict q;
 
   size_t
@@ -1277,7 +1277,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -1339,13 +1339,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register MagickSizeType
+  MagickSizeType
     *magick_restrict q;
 
   size_t
@@ -1485,7 +1485,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -1548,13 +1548,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -1693,7 +1693,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -1758,13 +1758,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned short
+  unsigned short
     *magick_restrict q;
 
   size_t
@@ -1903,7 +1903,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -1974,7 +1974,7 @@
   RectangleInfo
     roi;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2512,13 +2512,13 @@
   const char *magick_restrict map,const QuantumType *quantum_map,
   const void *pixels,ExceptionInfo *exception)
 {
-  register const unsigned char
+  const unsigned char
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -2711,7 +2711,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -2773,13 +2773,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,const void *pixels,ExceptionInfo *exception)
 {
-  register const double
+  const double
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -2952,7 +2952,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -3014,13 +3014,13 @@
   const char *magick_restrict map,const QuantumType *quantum_map,
   const void *pixels,ExceptionInfo *exception)
 {
-  register const float
+  const float
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -3193,7 +3193,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -3255,13 +3255,13 @@
   const char *magick_restrict map,const QuantumType *quantum_map,
   const void *pixels,ExceptionInfo *exception)
 {
-  register const unsigned int
+  const unsigned int
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -3414,7 +3414,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -3476,13 +3476,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,const void *pixels,ExceptionInfo *exception)
 {
-  register const MagickSizeType
+  const MagickSizeType
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -3635,7 +3635,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -3697,13 +3697,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,const void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -3856,7 +3856,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -3918,13 +3918,13 @@
   const char *magick_restrict map,const QuantumType *quantum_map,
   const void *pixels,ExceptionInfo *exception)
 {
-  register const unsigned short
+  const unsigned short
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -4077,7 +4077,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -4148,7 +4148,7 @@
   RectangleInfo
     roi;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -4336,7 +4336,7 @@
   PixelTrait
     trait;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -4508,10 +4508,10 @@
   PixelTrait
     traits;
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -4927,10 +4927,10 @@
     gamma,
     pixels[16];
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -4985,7 +4985,7 @@
         double
           sum;
 
-        register ssize_t
+        ssize_t
           j;
 
         PixelChannel channel = GetPixelChannelChannel(source,i);
@@ -5087,7 +5087,7 @@
         }
       for (i=0; i < (ssize_t) GetPixelChannels(source); i++)
       {
-        register ssize_t
+        ssize_t
           j;
 
         PixelChannel channel = GetPixelChannelChannel(source,i);
@@ -5164,7 +5164,7 @@
         }
       for (i=0; i < (ssize_t) GetPixelChannels(source); i++)
       {
-        register ssize_t
+        ssize_t
           j;
 
         PixelChannel channel = GetPixelChannelChannel(source,i);
@@ -5371,7 +5371,7 @@
         }
       for (i=0; i < (ssize_t) GetPixelChannels(source); i++)
       {
-        register ssize_t
+        ssize_t
           j;
 
         PixelChannel channel = GetPixelChannelChannel(source,i);
@@ -5494,10 +5494,10 @@
   PixelInfo
     pixels[16];
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -5960,7 +5960,7 @@
     fuzz,
     pixel;
 
-  register double
+  double
     distance,
     scale;
 
@@ -6069,7 +6069,7 @@
     fuzz,
     pixel;
 
-  register double
+  double
     scale,
     distance;
 
@@ -6172,7 +6172,7 @@
 
 static void LogPixelChannels(const Image *image)
 {
-  register ssize_t
+  ssize_t
     i;
 
   (void) LogMagickEvent(PixelEvent,GetMagickModule(),"%s[%08x]",
@@ -6285,7 +6285,7 @@
   ChannelType
     mask;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image != (Image *) NULL);
diff --git a/MagickCore/policy.c b/MagickCore/policy.c
index fed7034..e428d47 100644
--- a/MagickCore/policy.c
+++ b/MagickCore/policy.c
@@ -176,7 +176,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -215,7 +215,7 @@
     PolicyInfo
       *policy_info;
 
-    register const PolicyMapInfo
+    const PolicyMapInfo
       *p;
 
     p=PolicyMap+i;
@@ -277,10 +277,10 @@
   PolicyDomain
     domain;
 
-  register PolicyInfo
+  PolicyInfo
     *p;
 
-  register char
+  char
     *q;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -371,10 +371,10 @@
   const PolicyInfo
     **policies;
 
-  register const PolicyInfo
+  const PolicyInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -466,10 +466,10 @@
   char
     **policies;
 
-  register const PolicyInfo
+  const PolicyInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -628,7 +628,7 @@
   MagickBooleanType
     authorized;
 
-  register PolicyInfo
+  PolicyInfo
     *p;
 
   if (IsEventLogging() != MagickFalse)
@@ -700,7 +700,7 @@
   const PolicyInfo
     **policy_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1037,7 +1037,7 @@
 
 static void *DestroyPolicyElement(void *policy_info)
 {
-  register PolicyInfo
+  PolicyInfo
     *p;
 
   p=(PolicyInfo *) policy_info;
@@ -1162,7 +1162,7 @@
   MagickBooleanType
     status;
 
-  register PolicyInfo
+  PolicyInfo
     *p;
 
   status=MagickTrue;
diff --git a/MagickCore/prepress.c b/MagickCore/prepress.c
index c5beb3a..bb0f580 100644
--- a/MagickCore/prepress.c
+++ b/MagickCore/prepress.c
@@ -120,10 +120,10 @@
     double
       density;
 
-    register const Quantum
+    const Quantum
       *p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
diff --git a/MagickCore/profile.c b/MagickCore/profile.c
index 8b3e91c..2af20ba 100644
--- a/MagickCore/profile.c
+++ b/MagickCore/profile.c
@@ -401,7 +401,7 @@
 
 static void **DestroyPixelThreadSet(void **pixels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if (pixels == (void **) NULL)
@@ -416,7 +416,7 @@
 static void **AcquirePixelThreadSet(const size_t columns,
   const size_t channels,MagickBooleanType highres)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -447,7 +447,7 @@
 
 static cmsHTRANSFORM *DestroyTransformThreadSet(cmsHTRANSFORM *transform)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(transform != (cmsHTRANSFORM *) NULL);
@@ -465,7 +465,7 @@
   cmsHTRANSFORM
     *transform;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -530,10 +530,10 @@
 #define SetLCMSPixel(target_info,pixel) \
   ClampToQuantum(target_info->scale*QuantumRange*(pixel)+target_info->translate)
 
-  register double
+  double
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   p=(double *) source_info->pixels[id];
@@ -580,10 +580,10 @@
   const LCMSInfo *source_info,const LCMSInfo *target_info,
   const cmsHTRANSFORM *transform,Quantum *q)
 {
-  register Quantum
+  Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   p=(Quantum *) source_info->pixels[id];
@@ -1354,7 +1354,7 @@
               MagickBooleanType
                 sync;
 
-              register Quantum
+              Quantum
                 *magick_restrict q;
 
               if (status == MagickFalse)
@@ -1589,7 +1589,7 @@
     *datum,
     *q;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
   size_t
@@ -1697,7 +1697,7 @@
   const unsigned char
     *datum;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
   size_t
@@ -1842,7 +1842,7 @@
 
 static void PatchCorruptProfile(const char *name,StringInfo *profile)
 {
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -2317,7 +2317,7 @@
       int
         components;
 
-      register unsigned char
+      unsigned char
         *p,
         *q;
 
@@ -2454,7 +2454,7 @@
   const size_t old_columns,const size_t old_rows,
   const RectangleInfo *new_geometry)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickCore/property.c b/MagickCore/property.c
index 4116e9b..e651a41 100644
--- a/MagickCore/property.c
+++ b/MagickCore/property.c
@@ -236,7 +236,7 @@
     key[MagickPathExtent],
     value[MagickPathExtent];
 
-  register char
+  char
     *p;
 
   assert(image != (Image *) NULL);
@@ -434,7 +434,7 @@
     dataset,
     record;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -513,7 +513,7 @@
   int
     c;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned char
@@ -553,7 +553,7 @@
   int
     c;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned char
@@ -598,7 +598,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1239,7 +1239,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1423,7 +1423,7 @@
     number_entries=(size_t) ReadPropertyUnsignedShort(endian,directory);
     for ( ; entry < number_entries; entry++)
     {
-      register unsigned char
+      unsigned char
         *p,
         *q;
 
@@ -1785,7 +1785,7 @@
   MagickBooleanType
     status;
 
-  register const char
+  const char
     *p;
 
   XMLTreeInfo
@@ -1875,7 +1875,7 @@
     last[3],
     point[3];
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -2092,7 +2092,7 @@
     last[3],
     point[3];
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2220,7 +2220,7 @@
   MagickBooleanType
     read_from_properties;
 
-  register const char
+  const char
     *p;
 
   size_t
@@ -2923,7 +2923,7 @@
           PointInfo
             *convex_hull;
 
-          register ssize_t
+          ssize_t
             n;
 
           size_t
@@ -3115,7 +3115,7 @@
           PointInfo
             *bounding_box;
 
-          register ssize_t
+          ssize_t
             n;
 
           size_t
@@ -3587,10 +3587,10 @@
   MagickBooleanType
     number;
 
-  register char
+  char
     *q;  /* current position in interpret_text */
 
-  register const char
+  const char
     *p;  /* position in embed_text string being expanded */
 
   size_t
@@ -3771,7 +3771,7 @@
         *key,
         *string;
 
-      register ssize_t
+      ssize_t
         len;
 
       ssize_t
diff --git a/MagickCore/quantize.c b/MagickCore/quantize.c
index 8cee689..367cff7 100644
--- a/MagickCore/quantize.c
+++ b/MagickCore/quantize.c
@@ -540,10 +540,10 @@
         CubeInfo
           cube;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         ssize_t
@@ -564,10 +564,10 @@
           DoublePixelPacket
             pixel;
 
-          register const NodeInfo
+          const NodeInfo
             *node_info;
 
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -805,10 +805,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -912,10 +912,10 @@
   }
   for (y++; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -1095,7 +1095,7 @@
 static void ClosestColor(const Image *image,CubeInfo *cube_info,
   const NodeInfo *node_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1113,15 +1113,15 @@
       double
         pixel;
 
-      register double
+      double
         alpha,
         beta,
         distance;
 
-      register DoublePixelPacket
+      DoublePixelPacket
         *magick_restrict q;
 
-      register PixelInfo
+      PixelInfo
         *magick_restrict p;
 
       /*
@@ -1241,7 +1241,7 @@
 static void DefineImageColormap(Image *image,CubeInfo *cube_info,
   NodeInfo *node_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1256,10 +1256,10 @@
       DefineImageColormap(image,cube_info,node_info->child[i]);
   if (node_info->number_unique != 0)
     {
-      register double
+      double
         alpha;
 
-      register PixelInfo
+      PixelInfo
         *magick_restrict q;
 
       /*
@@ -1342,7 +1342,7 @@
 */
 static void DestroyCubeInfo(CubeInfo *cube_info)
 {
-  register Nodes
+  Nodes
     *nodes;
 
   /*
@@ -1429,7 +1429,7 @@
 
 static DoublePixelPacket **DestroyPixelThreadSet(DoublePixelPacket **pixels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(pixels != (DoublePixelPacket **) NULL);
@@ -1445,7 +1445,7 @@
   DoublePixelPacket
     **pixels;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1533,10 +1533,10 @@
       *current,
       *previous;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     size_t
@@ -1563,7 +1563,7 @@
         color,
         pixel;
 
-      register ssize_t
+      ssize_t
         i;
 
       ssize_t
@@ -1611,10 +1611,10 @@
       i=CacheOffset(&cube,&pixel);
       if (cube.cache[i] < 0)
         {
-          register NodeInfo
+          NodeInfo
             *node_info;
 
-          register size_t
+          size_t
             node_id;
 
           /*
@@ -1828,7 +1828,7 @@
   MagickBooleanType
     proceed;
 
-  register CubeInfo
+  CubeInfo
     *p;
 
   size_t
@@ -1838,10 +1838,10 @@
   if ((p->x >= 0) && (p->x < (ssize_t) image->columns) &&
       (p->y >= 0) && (p->y < (ssize_t) image->rows))
     {
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register ssize_t
+      ssize_t
         i;
 
       /*
@@ -1867,10 +1867,10 @@
       i=CacheOffset(cube_info,&pixel);
       if (p->cache[i] < 0)
         {
-          register NodeInfo
+          NodeInfo
             *node_info;
 
-          register size_t
+          size_t
             id;
 
           /*
@@ -1944,7 +1944,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2017,7 +2017,7 @@
     sum,
     weight;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2225,10 +2225,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -2353,7 +2353,7 @@
 
 static KmeansInfo **DestroyKmeansThreadSet(KmeansInfo **kmeans_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(kmeans_info != (KmeansInfo **) NULL);
@@ -2369,7 +2369,7 @@
   KmeansInfo
     **kmeans_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2394,7 +2394,7 @@
 static inline double KmeansMetric(const Image *magick_restrict image,
   const Quantum *magick_restrict p,const PixelInfo *magick_restrict q)
 {
-  register double
+  double
     gamma,
     metric,
     pixel;
@@ -2458,7 +2458,7 @@
     verbose,
     status;
 
-  register ssize_t
+  ssize_t
     n;
 
   size_t
@@ -2517,7 +2517,7 @@
       char
         color[MagickPathExtent];
 
-      register const char
+      const char
         *p;
 
       /*
@@ -2528,7 +2528,7 @@
         return(status);
       for (n=0, p=colors; n < (ssize_t) image->colors; n++)
       {
-        register const char
+        const char
           *q;
 
         for (q=p; *q != '\0'; q++)
@@ -2585,7 +2585,7 @@
     double
       distortion;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -2602,10 +2602,10 @@
       const int
         id = GetOpenMPThreadId();
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register ssize_t
+      ssize_t
         x;
 
       if (status == MagickFalse)
@@ -2621,7 +2621,7 @@
         double
           min_distance;
 
-        register ssize_t
+        ssize_t
           i;
 
         ssize_t
@@ -2668,7 +2668,7 @@
     */
     for (i=1; i < (ssize_t) number_threads; i++)
     {
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) image->colors; j++)
@@ -2793,7 +2793,7 @@
   QuantizeInfo
     *quantize_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2840,10 +2840,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2927,7 +2927,7 @@
   NodeInfo
     *parent;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2980,7 +2980,7 @@
 */
 static void PruneLevel(CubeInfo *cube_info,const NodeInfo *node_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3025,7 +3025,7 @@
 */
 static void PruneToCubeDepth(CubeInfo *cube_info,const NodeInfo *node_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3189,7 +3189,7 @@
   MagickProgressMonitor
     progress_monitor;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3323,7 +3323,7 @@
 static size_t QuantizeErrorFlatten(const CubeInfo *cube_info,
   const NodeInfo *node_info,const ssize_t offset,double *quantize_error)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3369,7 +3369,7 @@
 */
 static void Reduce(CubeInfo *cube_info,const NodeInfo *node_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3734,7 +3734,7 @@
   PixelInfo
     *colormap;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3773,10 +3773,10 @@
 #endif
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -3790,7 +3790,7 @@
           }
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register size_t
+          size_t
             intensity;
 
           intensity=ScaleQuantumToMap(GetPixelRed(image,q));
@@ -3853,10 +3853,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
diff --git a/MagickCore/quantum-export.c b/MagickCore/quantum-export.c
index 0eee7d9..85f2d12 100644
--- a/MagickCore/quantum-export.c
+++ b/MagickCore/quantum-export.c
@@ -176,7 +176,7 @@
 static inline unsigned char *PopQuantumPixel(QuantumInfo *quantum_info,
   const QuantumAny pixel,unsigned char *magick_restrict pixels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -209,7 +209,7 @@
 static inline unsigned char *PopQuantumLongPixel(QuantumInfo *quantum_info,
   const size_t pixel,unsigned char *magick_restrict pixels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -245,7 +245,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -255,7 +255,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -269,7 +269,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -294,7 +294,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -351,7 +351,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -376,7 +376,7 @@
     }
     case 10:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -425,7 +425,7 @@
     }
     case 12:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -549,7 +549,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -582,7 +582,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -651,7 +651,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -660,7 +660,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -680,13 +680,13 @@
     }
     case 10:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -775,7 +775,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -812,7 +812,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -895,7 +895,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -904,7 +904,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -924,13 +924,13 @@
     }
     case 10:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -1019,7 +1019,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1056,7 +1056,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1139,7 +1139,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -1152,7 +1152,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -1166,7 +1166,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1191,7 +1191,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1248,7 +1248,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -1257,7 +1257,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -1271,7 +1271,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1296,7 +1296,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1353,11 +1353,11 @@
   Quantum
     cbcr[4];
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned int
+  unsigned int
     pixel;
 
   size_t
@@ -1465,7 +1465,7 @@
   const MagickSizeType number_pixels,const Quantum *magick_restrict p,
   unsigned char *magick_restrict q,ExceptionInfo *exception)
 {
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -1478,7 +1478,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -1498,7 +1498,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1535,7 +1535,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1610,7 +1610,7 @@
   const MagickSizeType number_pixels,const Quantum *magick_restrict p,
   unsigned char *magick_restrict q,ExceptionInfo *exception)
 {
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -1623,7 +1623,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -1645,7 +1645,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1686,7 +1686,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1775,7 +1775,7 @@
   const MagickSizeType number_pixels,const Quantum *magick_restrict p,
   unsigned char *magick_restrict q,ExceptionInfo *exception)
 {
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -1788,7 +1788,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -1810,7 +1810,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1851,7 +1851,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1943,7 +1943,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -1952,10 +1952,10 @@
   {
     case 1:
     {
-      register double
+      double
         threshold;
 
-      register unsigned char
+      unsigned char
         black,
         white;
 
@@ -2005,7 +2005,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) (number_pixels-1) ; x+=2)
@@ -2029,7 +2029,7 @@
     }
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -2046,7 +2046,7 @@
       range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
-          register unsigned int
+          unsigned int
             pixel;
 
           for (x=0; x < (ssize_t) (number_pixels-2); x+=3)
@@ -2084,7 +2084,7 @@
     }
     case 12:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -2111,7 +2111,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2136,7 +2136,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2201,7 +2201,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -2210,10 +2210,10 @@
   {
     case 1:
     {
-      register double
+      double
         threshold;
 
-      register unsigned char
+      unsigned char
         black,
         pixel,
         white;
@@ -2273,7 +2273,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels ; x++)
@@ -2289,7 +2289,7 @@
     }
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -2305,7 +2305,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2334,7 +2334,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2407,7 +2407,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -2416,7 +2416,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -2430,7 +2430,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2455,7 +2455,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2509,7 +2509,7 @@
   const MagickSizeType number_pixels,const Quantum *magick_restrict p,
   unsigned char *magick_restrict q,ExceptionInfo *exception)
 {
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -2525,7 +2525,7 @@
   {
     case 1:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=((ssize_t) number_pixels-7); x > 0; x-=8)
@@ -2571,7 +2571,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) (number_pixels-1) ; x+=2)
@@ -2677,7 +2677,7 @@
   const Quantum *magick_restrict p,unsigned char *magick_restrict q,
   ExceptionInfo *exception)
 {
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -2693,7 +2693,7 @@
   {
     case 1:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=((ssize_t) number_pixels-3); x > 0; x-=4)
@@ -2742,7 +2742,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels ; x++)
@@ -2758,7 +2758,7 @@
     }
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -2773,7 +2773,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2802,7 +2802,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2875,7 +2875,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -2884,7 +2884,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -2898,7 +2898,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2923,7 +2923,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2980,7 +2980,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -2989,7 +2989,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -3003,7 +3003,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3028,7 +3028,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3085,7 +3085,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -3109,7 +3109,7 @@
     }
     case 10:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -3158,7 +3158,7 @@
     }
     case 12:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -3282,7 +3282,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3315,7 +3315,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3384,7 +3384,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -3393,7 +3393,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -3413,13 +3413,13 @@
     }
     case 10:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -3508,7 +3508,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3545,7 +3545,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3628,7 +3628,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -3637,7 +3637,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -3657,13 +3657,13 @@
     }
     case 10:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -3752,7 +3752,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3789,7 +3789,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3873,13 +3873,13 @@
   MagickSizeType
     number_pixels;
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *magick_restrict q;
 
   size_t
@@ -3908,7 +3908,7 @@
       double
         Sa;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       /*
@@ -3920,7 +3920,7 @@
         q=GetAuthenticPixelQueue(image);
       for (x=0; x < (ssize_t) image->columns; x++)
       {
-        register ssize_t
+        ssize_t
           i;
 
         Sa=QuantumScale*GetPixelAlpha(image,q);
@@ -3940,7 +3940,7 @@
       Quantum
         quantum;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       if (image_view != (CacheView *) NULL)
@@ -4073,7 +4073,7 @@
       Quantum
         quantum;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       if (image_view != (CacheView *) NULL)
diff --git a/MagickCore/quantum-import.c b/MagickCore/quantum-import.c
index d30418d..a1875db 100644
--- a/MagickCore/quantum-import.c
+++ b/MagickCore/quantum-import.c
@@ -242,10 +242,10 @@
 static inline const unsigned char *PushQuantumPixel(QuantumInfo *quantum_info,
   const unsigned char *magick_restrict pixels,unsigned int *quantum)
 {
-  register ssize_t
+  ssize_t
     i;
 
-  register size_t
+  size_t
     quantum_bits;
 
   *quantum=(QuantumAny) 0;
@@ -272,10 +272,10 @@
   QuantumInfo *quantum_info,const unsigned char *magick_restrict pixels,
   unsigned int *quantum)
 {
-  register ssize_t
+  ssize_t
     i;
 
-  register size_t
+  size_t
     quantum_bits;
 
   *quantum=0UL;
@@ -305,7 +305,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -442,7 +442,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -786,7 +786,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -821,7 +821,7 @@
       pixel=0;
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -1049,7 +1049,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -1084,7 +1084,7 @@
       pixel=0;
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -1312,7 +1312,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -1453,7 +1453,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -1590,7 +1590,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   unsigned int
@@ -1608,7 +1608,7 @@
       pixel=0;
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -1684,7 +1684,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -1875,7 +1875,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -2083,7 +2083,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -2291,7 +2291,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -2303,7 +2303,7 @@
   {
     case 1:
     {
-      register Quantum
+      Quantum
         black,
         white;
 
@@ -2334,7 +2334,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -2647,7 +2647,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -2659,7 +2659,7 @@
   {
     case 1:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       bit=0;
@@ -2690,7 +2690,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -2886,7 +2886,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -3023,7 +3023,7 @@
   MagickBooleanType
     range_exception;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -3040,7 +3040,7 @@
   {
     case 1:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < ((ssize_t) number_pixels-7); x+=8)
@@ -3076,7 +3076,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < ((ssize_t) number_pixels-1); x+=2)
@@ -3260,7 +3260,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -3277,7 +3277,7 @@
   {
     case 1:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=((ssize_t) number_pixels-3); x > 0; x-=4)
@@ -3312,7 +3312,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -3500,7 +3500,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -3637,7 +3637,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -3774,7 +3774,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -4118,7 +4118,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -4153,7 +4153,7 @@
       pixel=0;
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -4381,7 +4381,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -4416,7 +4416,7 @@
       pixel=0;
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -4645,13 +4645,13 @@
   MagickSizeType
     number_pixels;
 
-  register const unsigned char
+  const unsigned char
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
   size_t
@@ -4819,7 +4819,7 @@
         q=GetCacheViewAuthenticPixelQueue(image_view);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        register ssize_t
+        ssize_t
           i;
 
         Sa=QuantumScale*GetPixelAlpha(image,q);
diff --git a/MagickCore/quantum-private.h b/MagickCore/quantum-private.h
index 317a65a..3fef6c8 100644
--- a/MagickCore/quantum-private.h
+++ b/MagickCore/quantum-private.h
@@ -125,7 +125,7 @@
       single_precision;
   } SinglePrecision;
 
-  register unsigned int
+  unsigned int
     exponent,
     significand,
     sign_bit;
@@ -192,7 +192,7 @@
 static inline unsigned char *PopLongPixel(const EndianType endian,
   const unsigned int pixel,unsigned char *magick_restrict pixels)
 {
-  register unsigned int
+  unsigned int
     quantum;
 
   quantum=(unsigned int) pixel;
@@ -214,7 +214,7 @@
 static inline unsigned char *PopShortPixel(const EndianType endian,
   const unsigned short pixel,unsigned char *magick_restrict pixels)
 {
-  register unsigned int
+  unsigned int
     quantum;
 
   quantum=pixel;
@@ -241,7 +241,7 @@
   const unsigned char *magick_restrict pixels,
   unsigned int *magick_restrict pixel)
 {
-  register unsigned int
+  unsigned int
     quantum;
 
   if (endian == LSBEndian)
@@ -265,7 +265,7 @@
   const unsigned char *magick_restrict pixels,
   unsigned short *magick_restrict pixel)
 {
-  register unsigned int
+  unsigned int
     quantum;
 
   if (endian == LSBEndian)
@@ -710,10 +710,10 @@
       single_precision;
   } SinglePrecision;
 
-  register int
+  int
     exponent;
 
-  register unsigned int
+  unsigned int
     significand,
     sign_bit;
 
@@ -771,7 +771,7 @@
       float
         alpha;
 
-      register int
+      int
         i;
 
       /*
diff --git a/MagickCore/quantum.c b/MagickCore/quantum.c
index 7f88a50..515d4a3 100644
--- a/MagickCore/quantum.c
+++ b/MagickCore/quantum.c
@@ -156,7 +156,7 @@
 static MagickBooleanType AcquireQuantumPixels(QuantumInfo *quantum_info,
   const size_t extent)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(quantum_info != (QuantumInfo *) NULL);
@@ -247,7 +247,7 @@
 */
 static void DestroyQuantumPixels(QuantumInfo *quantum_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickCore/random-private.h b/MagickCore/random-private.h
index 3a6cd99..5e97c56 100644
--- a/MagickCore/random-private.h
+++ b/MagickCore/random-private.h
@@ -39,7 +39,7 @@
 static inline RandomInfo **DestroyRandomInfoThreadSet(
   RandomInfo **random_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(random_info != (RandomInfo **) NULL);
@@ -51,7 +51,7 @@
 
 static inline RandomInfo **AcquireRandomInfoThreadSet(void)
 {
-  register ssize_t
+  ssize_t
     i;
 
   RandomInfo
diff --git a/MagickCore/random.c b/MagickCore/random.c
index b592143..12b6e3f 100644
--- a/MagickCore/random.c
+++ b/MagickCore/random.c
@@ -319,7 +319,7 @@
 #if !defined(MAGICKCORE_WINDOWS_SUPPORT)
 static ssize_t ReadRandom(int file,unsigned char *source,size_t length)
 {
-  register unsigned char
+  unsigned char
     *q;
 
   ssize_t
@@ -498,7 +498,7 @@
     */
     if (environ != (char **) NULL)
       {
-        register ssize_t
+        ssize_t
           i;
 
         /*
@@ -831,7 +831,7 @@
 
 static inline void IncrementRandomNonce(StringInfo *nonce)
 {
-  register ssize_t
+  ssize_t
     i;
 
   unsigned char
@@ -850,10 +850,10 @@
 MagickExport void SetRandomKey(RandomInfo *random_info,const size_t length,
   unsigned char *key)
 {
-  register size_t
+  size_t
     i;
 
-  register unsigned char
+  unsigned char
     *p;
 
   SignatureInfo
diff --git a/MagickCore/registry.c b/MagickCore/registry.c
index d306f0a..d385567 100644
--- a/MagickCore/registry.c
+++ b/MagickCore/registry.c
@@ -111,7 +111,7 @@
     key[MagickPathExtent],
     value[MagickPathExtent];
 
-  register char
+  char
     *p;
 
   assert(option != (const char *) NULL);
@@ -423,7 +423,7 @@
 
 static void *DestroyRegistryNode(void *registry_info)
 {
-  register RegistryInfo
+  RegistryInfo
     *p;
 
   p=(RegistryInfo *) registry_info;
diff --git a/MagickCore/resample-private.h b/MagickCore/resample-private.h
index c55840b..358bc2a 100644
--- a/MagickCore/resample-private.h
+++ b/MagickCore/resample-private.h
@@ -27,7 +27,7 @@
 static inline ResampleFilter **DestroyResampleFilterThreadSet(
   ResampleFilter **filter)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(filter != (ResampleFilter **) NULL);
@@ -42,7 +42,7 @@
   const Image *image,const VirtualPixelMethod method,
   const MagickBooleanType interpolate,ExceptionInfo *exception)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ResampleFilter
diff --git a/MagickCore/resample.c b/MagickCore/resample.c
index ac58f6a..b709b1d 100644
--- a/MagickCore/resample.c
+++ b/MagickCore/resample.c
@@ -208,7 +208,7 @@
 MagickExport ResampleFilter *AcquireResampleFilter(const Image *image,
   ExceptionInfo *exception)
 {
-  register ResampleFilter
+  ResampleFilter
     *resample_filter;
 
   assert(image != (Image *) NULL);
@@ -323,8 +323,8 @@
   double u1;
   double U,V,Q,DQ,DDQ;
   double divisor_c,divisor_m;
-  register double weight;
-  register const Quantum *pixels;
+  double weight;
+  const Quantum *pixels;
   assert(resample_filter != (ResampleFilter *) NULL);
   assert(resample_filter->signature == MagickCoreSignature);
 
@@ -1197,7 +1197,7 @@
   }
 
   /* Scale ellipse formula to directly index the Filter Lookup Table */
-  { register double scale;
+  { double scale;
 #if FILTER_LUT
     /* scale so that F = WLUT_WIDTH; -- hardcoded */
     scale = (double)WLUT_WIDTH/F;
@@ -1281,7 +1281,7 @@
 
 #if FILTER_LUT
   /* Fill the LUT with the weights from the selected filter function */
-  { register int
+  { int
        Q;
     double
        r_scale;
@@ -1336,7 +1336,7 @@
     if (IsStringTrue(GetImageArtifact(resample_filter->image,
         "resample:verbose")) != MagickFalse)
       {
-        register int
+        int
           Q;
         double
           r_scale;
diff --git a/MagickCore/resize.c b/MagickCore/resize.c
index af73fa7..f883f2c 100644
--- a/MagickCore/resize.c
+++ b/MagickCore/resize.c
@@ -384,7 +384,7 @@
   double
     value;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -770,7 +770,7 @@
     C,
     value;
 
-  register ResizeFilter
+  ResizeFilter
     *resize_filter;
 
   /*
@@ -1345,7 +1345,7 @@
     t,
     y;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1369,7 +1369,7 @@
     p,
     q;
 
-  register ssize_t
+  ssize_t
     i;
 
   static const double
@@ -1415,7 +1415,7 @@
     p,
     q;
 
-  register ssize_t
+  ssize_t
     i;
 
   static const double
@@ -1455,7 +1455,7 @@
     p,
     q;
 
-  register ssize_t
+  ssize_t
     i;
 
   static const double
@@ -1763,10 +1763,10 @@
     PointInfo
       offset;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1778,7 +1778,7 @@
     offset.y=((double) y+0.5)*scale.y-0.5;
     for (x=0; x < (ssize_t) resize_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1896,7 +1896,7 @@
   MemoryInfo
     *pixel_info;
 
-  register gfloat
+  gfloat
     *q;
 
   ssize_t
@@ -1927,10 +1927,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1943,7 +1943,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1980,10 +1980,10 @@
   (void) lqr_carver_scan_reset(carver);
   while (lqr_carver_scan_ext(carver,&x_offset,&y_offset,(void **) &packet) != 0)
   {
-    register Quantum
+    Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       i;
 
     p=QueueCacheViewAuthenticPixels(rescale_view,x_offset,y_offset,1,1,
@@ -2063,7 +2063,7 @@
 static inline void CopyPixels(const Quantum *source,const ssize_t source_offset,
   Quantum *destination,const ssize_t destination_offset,const size_t channels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; i < (ssize_t) channels; i++)
@@ -2077,12 +2077,12 @@
   ssize_t
     sum;
 
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; i < (ssize_t) channels; i++)
   {
-    register ssize_t
+    ssize_t
       j;
 
     sum=0;
@@ -2105,7 +2105,7 @@
 static inline int PixelsEqual(const Quantum *source1,ssize_t offset1,
   const Quantum *source2,ssize_t offset2,const size_t channels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   offset1*=channels;
@@ -2434,7 +2434,7 @@
     be,
     de;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2589,7 +2589,7 @@
   if (PixelsEqual(pixels,1,pixels,7,channels) ||
       PixelsEqual(pixels,3,pixels,5,channels))
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < 4; i++)
@@ -2626,7 +2626,7 @@
     ) \
   )
 
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; i < 4; i++)
@@ -2814,7 +2814,7 @@
     }
   else
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < 9; i++)
@@ -2999,10 +2999,10 @@
     Quantum
       r[128]; /* to hold result pixels */
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3019,13 +3019,13 @@
     */
     for (x=0; x < (ssize_t) source_image->columns; x++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
       size_t
         channels;
 
-      register ssize_t
+      ssize_t
         i;
 
       ssize_t
@@ -3227,7 +3227,7 @@
 static ContributionInfo **DestroyContributionThreadSet(
   ContributionInfo **contribution)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(contribution != (ContributionInfo **) NULL);
@@ -3241,7 +3241,7 @@
 
 static ContributionInfo **AcquireContributionThreadSet(const size_t count)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ContributionInfo
@@ -3334,16 +3334,16 @@
       bisect,
       density;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ContributionInfo
+    ContributionInfo
       *magick_restrict contribution;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       y;
 
     ssize_t
@@ -3369,7 +3369,7 @@
       continue;
     if ((density != 0.0) && (density != 1.0))
       {
-        register ssize_t
+        ssize_t
           i;
 
         /*
@@ -3390,7 +3390,7 @@
       }
     for (y=0; y < (ssize_t) resize_image->rows; y++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -3407,7 +3407,7 @@
           resize_traits,
           traits;
 
-        register ssize_t
+        ssize_t
           j;
 
         ssize_t
@@ -3552,16 +3552,16 @@
       bisect,
       density;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ContributionInfo
+    ContributionInfo
       *magick_restrict contribution;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     ssize_t
@@ -3587,7 +3587,7 @@
       continue;
     if ((density != 0.0) && (density != 1.0))
       {
-        register ssize_t
+        ssize_t
           i;
 
         /*
@@ -3609,7 +3609,7 @@
       }
     for (x=0; x < (ssize_t) resize_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -3626,7 +3626,7 @@
           resize_traits,
           traits;
 
-        register ssize_t
+        ssize_t
           j;
 
         ssize_t
@@ -3866,7 +3866,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     x1;
 
   ssize_t
@@ -3942,13 +3942,13 @@
 #endif
   for (y=0; y < (ssize_t) sample_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     ssize_t
@@ -3972,7 +3972,7 @@
     */
     for (x=0; x < (ssize_t) sample_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       if (GetPixelWriteMask(sample_image,q) <= (QuantumRange/2))
@@ -4083,7 +4083,7 @@
     scale,
     span;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -4154,13 +4154,13 @@
   scale_view=AcquireAuthenticCacheView(scale_image,exception);
   for (y=0; y < (ssize_t) scale_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
diff --git a/MagickCore/resource.c b/MagickCore/resource.c
index 596d249..b469ea9 100644
--- a/MagickCore/resource.c
+++ b/MagickCore/resource.c
@@ -533,7 +533,7 @@
   directory=DestroyString(directory);
 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
   {
-    register char
+    char
       *p;
 
     /*
@@ -561,10 +561,10 @@
     c,
     file;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   static const char
@@ -591,7 +591,7 @@
   file=(-1);
   for (i=0; i < (ssize_t) TMP_MAX; i++)
   {
-    register ssize_t
+    ssize_t
       j;
 
     /*
@@ -1148,7 +1148,7 @@
   MagickSizeType
     memory;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1310,7 +1310,7 @@
 */
 MagickPrivate void ResourceComponentTerminus(void)
 {
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; i < (ssize_t) NumberOfResourceTypes; i++)
diff --git a/MagickCore/segment.c b/MagickCore/segment.c
index 0a3f889..1380a0f 100644
--- a/MagickCore/segment.c
+++ b/MagickCore/segment.c
@@ -288,10 +288,10 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register double
+  double
     *squares;
 
   size_t
@@ -372,10 +372,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -552,13 +552,13 @@
     Cluster
       *cluster;
 
-    register const PixelInfo
+    const PixelInfo
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -603,7 +603,7 @@
             ratio,
             sum;
 
-          register ssize_t
+          ssize_t
             j,
             k;
 
@@ -704,7 +704,7 @@
 static void ConsolidateCrossings(ZeroCrossing *zero_crossing,
   const size_t number_crossings)
 {
-  register ssize_t
+  ssize_t
     i,
     j,
     k,
@@ -877,7 +877,7 @@
 static void DerivativeHistogram(const double *histogram,
   double *derivative)
 {
-  register ssize_t
+  ssize_t
     i,
     n;
 
@@ -954,10 +954,10 @@
   double
     threshold;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1223,10 +1223,10 @@
 static void InitializeHistogram(const Image *image,ssize_t **histogram,
   ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1298,7 +1298,7 @@
 
 static void MeanStability(IntervalTree *node)
 {
-  register IntervalTree
+  IntervalTree
     *child;
 
   if (node == (IntervalTree *) NULL)
@@ -1307,10 +1307,10 @@
   child=node->child;
   if (child != (IntervalTree *) NULL)
     {
-      register ssize_t
+      ssize_t
         count;
 
-      register double
+      double
         sum;
 
       sum=0.0;
@@ -1347,7 +1347,7 @@
     *node,
     *root;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1523,7 +1523,7 @@
   MagickBooleanType
     peak;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1722,7 +1722,7 @@
     *gamma,
     sum;
 
-  register ssize_t
+  ssize_t
     u,
     x;
 
@@ -1802,7 +1802,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   short
@@ -1895,7 +1895,7 @@
 static void ZeroCrossHistogram(double *second_derivative,
   const double smooth_threshold,short *crossings)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickCore/shear.c b/MagickCore/shear.c
index b5520b0..4d89f24 100644
--- a/MagickCore/shear.c
+++ b/MagickCore/shear.c
@@ -127,7 +127,7 @@
     geometry,
     page;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -219,11 +219,11 @@
   MatrixInfo
     *swap;
 
-  register MatrixInfo
+  MatrixInfo
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -235,7 +235,7 @@
   {
     for (x=0; x < (ssize_t) GetMatrixColumns(p); x+=2*(ssize_t) step)
     {
-      register ssize_t
+      ssize_t
         i;
 
       ssize_t
@@ -295,7 +295,7 @@
 #endif
   for (x=0; x < (ssize_t) GetMatrixColumns(p); x++)
   {
-    register ssize_t
+    ssize_t
       y;
 
     size_t
@@ -384,10 +384,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       i,
       x;
 
@@ -441,10 +441,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       i,
       x;
 
@@ -522,10 +522,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if ((y >= offset) && (y < ((ssize_t) image->rows-offset)))
@@ -582,7 +582,7 @@
   RectangleInfo
     geometry;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -785,7 +785,7 @@
 #endif
       for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height)
       {
-        register ssize_t
+        ssize_t
           tile_x;
 
         if (status == MagickFalse)
@@ -796,13 +796,13 @@
           MagickBooleanType
             sync;
 
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             y;
 
           size_t
@@ -824,10 +824,10 @@
             }
           for (y=0; y < (ssize_t) width; y++)
           {
-            register const Quantum
+            const Quantum
               *magick_restrict tile_pixels;
 
-            register ssize_t
+            ssize_t
               x;
 
             if (status == MagickFalse)
@@ -843,7 +843,7 @@
             tile_pixels=p+((height-1)*width+y)*GetPixelChannels(image);
             for (x=0; x < (ssize_t) height; x++)
             {
-              register ssize_t
+              ssize_t
                 i;
 
               for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -886,7 +886,7 @@
     }
     case 2:
     {
-      register ssize_t
+      ssize_t
         y;
 
       /*
@@ -901,13 +901,13 @@
         MagickBooleanType
           sync;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -923,7 +923,7 @@
         q+=GetPixelChannels(rotate_image)*image->columns;
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           q-=GetPixelChannels(rotate_image);
@@ -982,7 +982,7 @@
 #endif
       for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height)
       {
-        register ssize_t
+        ssize_t
           tile_x;
 
         if (status == MagickFalse)
@@ -993,13 +993,13 @@
           MagickBooleanType
             sync;
 
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             y;
 
           size_t
@@ -1021,10 +1021,10 @@
             }
           for (y=0; y < (ssize_t) width; y++)
           {
-            register const Quantum
+            const Quantum
               *magick_restrict tile_pixels;
 
-            register ssize_t
+            ssize_t
               x;
 
             if (status == MagickFalse)
@@ -1039,7 +1039,7 @@
             tile_pixels=p+((width-1)-y)*GetPixelChannels(image);
             for (x=0; x < (ssize_t) height; x++)
             {
-              register ssize_t
+              ssize_t
                 i;
 
               for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1184,11 +1184,11 @@
       area,
       displacement;
 
-    register Quantum
+    Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       i;
 
     ShearDirection
@@ -1401,11 +1401,11 @@
       source,
       destination;
 
-    register Quantum
+    Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       i;
 
     ShearDirection
diff --git a/MagickCore/signature.c b/MagickCore/signature.c
index f0f0e42..b180682 100644
--- a/MagickCore/signature.c
+++ b/MagickCore/signature.c
@@ -209,13 +209,13 @@
 */
 MagickPrivate void FinalizeSignature(SignatureInfo *signature_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *q;
 
-  register unsigned int
+  unsigned int
     *p;
 
   size_t
@@ -479,7 +479,7 @@
   float
     pixel;
 
-  register const Quantum
+  const Quantum
     *p;
 
   SignatureInfo
@@ -507,10 +507,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register unsigned char
+    unsigned char
       *q;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -522,7 +522,7 @@
     q=pixels;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       if (GetPixelReadMask(image,p) <= (QuantumRange/2))
@@ -532,7 +532,7 @@
         }
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
       {
-        register ssize_t
+        ssize_t
           j;
 
         PixelChannel channel = GetPixelChannelChannel(image,i);
@@ -599,10 +599,10 @@
 #define Suma1(x)  (RotateRight(x,6) ^ RotateRight(x,11) ^ RotateRight(x,25))
 #define Trunc32(x)  ((unsigned int) ((x) & 0xffffffffU))
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *p;
 
   ssize_t
@@ -766,10 +766,10 @@
 MagickPrivate void UpdateSignature(SignatureInfo *signature_info,
   const StringInfo *message)
 {
-  register size_t
+  size_t
     i;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
diff --git a/MagickCore/splay-tree.c b/MagickCore/splay-tree.c
index 862266c..5def7be 100644
--- a/MagickCore/splay-tree.c
+++ b/MagickCore/splay-tree.c
@@ -157,7 +157,7 @@
   int
     compare;
 
-  register NodeInfo
+  NodeInfo
     *node;
 
   LockSemaphoreInfo(splay_tree->semaphore);
@@ -247,7 +247,7 @@
 static NodeInfo *LinkSplayTreeNodes(NodeInfo **nodes,const size_t low,
   const size_t high)
 {
-  register NodeInfo
+  NodeInfo
     *node;
 
   size_t
@@ -268,7 +268,7 @@
 
 static inline int SplayTreeToNodeArray(NodeInfo *node,const void *nodes)
 {
-  register const NodeInfo
+  const NodeInfo
     ***p;
 
   p=(const NodeInfo ***) nodes;
@@ -332,7 +332,7 @@
 
 static inline void *GetFirstSplayTreeNode(SplayTreeInfo *splay_tree)
 {
-  register NodeInfo
+  NodeInfo
     *node;
 
   node=splay_tree->root;
@@ -346,7 +346,7 @@
 MagickExport SplayTreeInfo *CloneSplayTree(SplayTreeInfo *splay_tree,
   void *(*clone_key)(void *),void *(*clone_value)(void *))
 {
-  register NodeInfo
+  NodeInfo
     *next,
     *node;
 
@@ -486,7 +486,7 @@
 MagickExport MagickBooleanType DeleteNodeByValueFromSplayTree(
   SplayTreeInfo *splay_tree,const void *value)
 {
-  register NodeInfo
+  NodeInfo
     *next,
     *node;
 
@@ -517,7 +517,7 @@
         int
           compare;
 
-        register NodeInfo
+        NodeInfo
           *left,
           *right;
 
@@ -606,7 +606,7 @@
   int
     compare;
 
-  register NodeInfo
+  NodeInfo
     *left,
     *right;
 
@@ -684,7 +684,7 @@
   NodeInfo
     *node;
 
-  register NodeInfo
+  NodeInfo
     *active,
     *pend;
 
@@ -768,7 +768,7 @@
 */
 MagickExport const void *GetNextKeyInSplayTree(SplayTreeInfo *splay_tree)
 {
-  register NodeInfo
+  NodeInfo
     *node;
 
   void
@@ -822,7 +822,7 @@
 */
 MagickExport const void *GetNextValueInSplayTree(SplayTreeInfo *splay_tree)
 {
-  register NodeInfo
+  NodeInfo
     *node;
 
   void
@@ -1030,10 +1030,10 @@
   NodeInfo
     **nodes;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register NodeInfo
+  NodeInfo
     *node;
 
   TransitionType
@@ -1190,7 +1190,7 @@
 MagickExport void *RemoveNodeByValueFromSplayTree(SplayTreeInfo *splay_tree,
   const void *value)
 {
-  register NodeInfo
+  NodeInfo
     *next,
     *node;
 
@@ -1222,7 +1222,7 @@
         int
           compare;
 
-        register NodeInfo
+        NodeInfo
           *left,
           *right;
 
@@ -1302,7 +1302,7 @@
   int
     compare;
 
-  register NodeInfo
+  NodeInfo
     *left,
     *right;
 
@@ -1382,7 +1382,7 @@
   NodeInfo
     *node;
 
-  register NodeInfo
+  NodeInfo
     *active,
     *pend;
 
@@ -1521,7 +1521,7 @@
   NodeInfo
     **next;
 
-  register NodeInfo
+  NodeInfo
     *n,
     *p;
 
diff --git a/MagickCore/static.c b/MagickCore/static.c
index 7f0fe25..0bf48e9 100644
--- a/MagickCore/static.c
+++ b/MagickCore/static.c
@@ -223,7 +223,7 @@
   PolicyRights
     rights;
 
-  register const CoderInfo
+  const CoderInfo
     *p;
 
   size_t
diff --git a/MagickCore/statistic.c b/MagickCore/statistic.c
index 2e01690..fdbb28c 100644
--- a/MagickCore/statistic.c
+++ b/MagickCore/statistic.c
@@ -140,7 +140,7 @@
 static PixelChannels **DestroyPixelThreadSet(const Image *images,
   PixelChannels **pixels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -164,7 +164,7 @@
   PixelChannels
     **pixels;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -183,7 +183,7 @@
     columns=MagickMax(next->columns,columns);
   for (i=0; i < (ssize_t) rows; i++)
   {
-    register ssize_t
+    ssize_t
       j;
 
     pixels[i]=(PixelChannels *) AcquireQuantumMemory(columns,sizeof(**pixels));
@@ -191,7 +191,7 @@
       return(DestroyPixelThreadSet(images,pixels));
     for (j=0; j < (ssize_t) columns; j++)
     {
-      register ssize_t
+      ssize_t
         k;
 
       for (k=0; k < MaxPixelChannels; k++)
@@ -221,7 +221,7 @@
   double
     distance;
 
-  register ssize_t
+  ssize_t
     i;
 
   color_1=(const PixelChannels *) x;
@@ -242,7 +242,7 @@
   double
     result;
 
-  register ssize_t
+  ssize_t
     i;
 
   result=0.0;
@@ -574,13 +574,13 @@
         const Quantum
           **p;
 
-        register PixelChannels
+        PixelChannels
           *evaluate_pixel;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         ssize_t
@@ -614,7 +614,7 @@
         evaluate_pixel=evaluate_pixels[id];
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           next=images;
@@ -688,14 +688,14 @@
         const Quantum
           **p;
 
-        register ssize_t
+        ssize_t
           i,
           x;
 
-        register PixelChannels
+        PixelChannels
           *evaluate_pixel;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         ssize_t
@@ -735,7 +735,7 @@
         {
           for (x=0; x < (ssize_t) image->columns; x++)
           {
-            register ssize_t
+            ssize_t
               i;
 
             for (i=0; i < (ssize_t) GetPixelChannels(next); i++)
@@ -770,7 +770,7 @@
             {
               for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
               {
-                register ssize_t
+                ssize_t
                   j;
 
                 for (j=0; j < (ssize_t) (number_images-1); j++)
@@ -877,10 +877,10 @@
     const int
       id = GetOpenMPThreadId();
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -896,7 +896,7 @@
       double
         result;
 
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -978,7 +978,7 @@
   double
     result;
 
-  register ssize_t
+  ssize_t
     i;
 
   (void) exception;
@@ -1109,10 +1109,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1125,7 +1125,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1432,7 +1432,7 @@
 
 static size_t GetImageChannels(const Image *image)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1508,10 +1508,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -1522,7 +1522,7 @@
       break;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1553,10 +1553,10 @@
   }
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -1567,7 +1567,7 @@
       break;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1783,10 +1783,10 @@
   MagickBooleanType
     status;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   perceptual_hash=(ChannelPerceptualHash *) AcquireQuantumMemory(
@@ -1910,10 +1910,10 @@
     MagickBooleanType
       row_initialize;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1927,7 +1927,7 @@
     row_initialize=MagickTrue;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2015,7 +2015,7 @@
 {
 #define SwapPixels(alpha,beta) \
 { \
-  register Quantum gamma=(alpha); \
+  Quantum gamma=(alpha); \
   (alpha)=(beta);(beta)=gamma; \
 }
 
@@ -2085,7 +2085,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2124,10 +2124,10 @@
     sizeof(*histogram));
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -2138,7 +2138,7 @@
       break;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       if (GetPixelReadMask(image,p) <= (QuantumRange/2))
@@ -2218,7 +2218,7 @@
     double
       number_bins;
 
-    register ssize_t
+    ssize_t
       j;
 
     /*
@@ -2290,10 +2290,10 @@
           continue;
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register ssize_t
+          ssize_t
             x;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2447,14 +2447,14 @@
     const int
       id = GetOpenMPThreadId();
 
-    register ssize_t
+    ssize_t
       i,
       x;
 
-    register PixelChannels
+    PixelChannels
       *polynomial_pixel;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     ssize_t
@@ -2476,7 +2476,7 @@
     next=images;
     for (j=0; j < (ssize_t) number_images; j++)
     {
-      register const Quantum
+      const Quantum
         *p;
 
       if (j >= (ssize_t) number_terms)
@@ -2490,7 +2490,7 @@
         }
       for (x=0; x < (ssize_t) image->columns; x++)
       {
-        register ssize_t
+        ssize_t
           i;
 
         for (i=0; i < (ssize_t) GetPixelChannels(next); i++)
@@ -2519,7 +2519,7 @@
     }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2634,7 +2634,7 @@
 
 static PixelList **DestroyPixelListThreadSet(PixelList **pixel_list)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(pixel_list != (PixelList **) NULL);
@@ -2671,7 +2671,7 @@
   PixelList
     **pixel_list;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2694,10 +2694,10 @@
 
 static void AddNodePixelList(PixelList *pixel_list,const size_t color)
 {
-  register SkipList
+  SkipList
     *p;
 
-  register ssize_t
+  ssize_t
     level;
 
   size_t
@@ -2753,7 +2753,7 @@
 
 static inline void GetMedianPixelList(PixelList *pixel_list,Quantum *pixel)
 {
-  register SkipList
+  SkipList
     *p;
 
   size_t
@@ -2778,7 +2778,7 @@
 
 static inline void GetModePixelList(PixelList *pixel_list,Quantum *pixel)
 {
-  register SkipList
+  SkipList
     *p;
 
   size_t
@@ -2812,7 +2812,7 @@
 
 static inline void GetNonpeakPixelList(PixelList *pixel_list,Quantum *pixel)
 {
-  register SkipList
+  SkipList
     *p;
 
   size_t
@@ -2868,10 +2868,10 @@
   int
     level;
 
-  register SkipNode
+  SkipNode
     *root;
 
-  register SkipList
+  SkipList
     *p;
 
   /*
@@ -2953,13 +2953,13 @@
     const int
       id = GetOpenMPThreadId();
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2975,7 +2975,7 @@
       }
     for (x=0; x < (ssize_t) statistic_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2990,10 +2990,10 @@
         Quantum
           pixel;
 
-        register const Quantum
+        const Quantum
           *magick_restrict pixels;
 
-        register ssize_t
+        ssize_t
           u;
 
         ssize_t
diff --git a/MagickCore/stream.c b/MagickCore/stream.c
index cd1c88c..ef2d49e 100644
--- a/MagickCore/stream.c
+++ b/MagickCore/stream.c
@@ -448,10 +448,10 @@
 static MagickBooleanType GetOneAuthenticPixelFromStream(Image *image,
   const ssize_t x,const ssize_t y,Quantum *pixel,ExceptionInfo *exception)
 {
-  register Quantum
+  Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image != (Image *) NULL);
@@ -515,7 +515,7 @@
   const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image != (Image *) NULL);
@@ -1405,10 +1405,10 @@
   QuantumType
     *quantum_map;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1534,7 +1534,7 @@
   {
     case CharPixel:
     {
-      register unsigned char
+      unsigned char
         *q;
 
       q=(unsigned char *) stream_info->pixels;
@@ -1698,7 +1698,7 @@
     }
     case DoublePixel:
     {
-      register double
+      double
         *q;
 
       q=(double *) stream_info->pixels;
@@ -1890,7 +1890,7 @@
     }
     case FloatPixel:
     {
-      register float
+      float
         *q;
 
       q=(float *) stream_info->pixels;
@@ -2082,7 +2082,7 @@
     }
     case LongPixel:
     {
-      register unsigned int
+      unsigned int
         *q;
 
       q=(unsigned int *) stream_info->pixels;
@@ -2246,7 +2246,7 @@
     }
     case LongLongPixel:
     {
-      register MagickSizeType
+      MagickSizeType
         *q;
 
       q=(MagickSizeType *) stream_info->pixels;
@@ -2412,7 +2412,7 @@
     }
     case QuantumPixel:
     {
-      register Quantum
+      Quantum
         *q;
 
       q=(Quantum *) stream_info->pixels;
@@ -2576,7 +2576,7 @@
     }
     case ShortPixel:
     {
-      register unsigned short
+      unsigned short
         *q;
 
       q=(unsigned short *) stream_info->pixels;
diff --git a/MagickCore/string-private.h b/MagickCore/string-private.h
index b624bb5..450cf2d 100644
--- a/MagickCore/string-private.h
+++ b/MagickCore/string-private.h
@@ -57,7 +57,7 @@
       length_needle,
       length_haystack;
 
-    register size_t
+    size_t
       i;
 
     if (!haystack || !needle)
@@ -66,7 +66,7 @@
     length_haystack=strlen(haystack)-length_needle+1;
     for (i=0; i < length_haystack; i++)
     {
-      register size_t
+      size_t
         j;
 
       for (j=0; j < length_needle; j++)
diff --git a/MagickCore/string.c b/MagickCore/string.c
index 70081f6..fbde890 100644
--- a/MagickCore/string.c
+++ b/MagickCore/string.c
@@ -392,13 +392,13 @@
 MagickExport size_t ConcatenateMagickString(char *magick_restrict destination,
   const char *magick_restrict source,const size_t length)
 {
-  register char
+  char
     *magick_restrict q;
 
-  register const char
+  const char
     *magick_restrict p;
 
-  register size_t
+  size_t
     i;
 
   size_t
@@ -603,7 +603,7 @@
     }
   else
     {
-      register size_t
+      size_t
         i;
 
       ssize_t
@@ -719,13 +719,13 @@
 MagickExport size_t CopyMagickString(char *magick_restrict destination,
   const char *magick_restrict source,const size_t length)
 {
-  register char
+  char
     *magick_restrict q;
 
-  register const char
+  const char
     *magick_restrict p;
 
-  register size_t
+  size_t
     n;
 
   p=source;
@@ -840,7 +840,7 @@
 */
 MagickExport char **DestroyStringList(char **list)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(list != (char **) NULL);
@@ -884,10 +884,10 @@
   char
     *destination;
 
-  register char
+  char
     *q;
 
-  register const char
+  const char
     *p;
 
   size_t
@@ -1058,7 +1058,7 @@
     bytes,
     extent;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1461,10 +1461,10 @@
 MagickExport void PrintStringInfo(FILE *file,const char *id,
   const StringInfo *string_info)
 {
-  register const char
+  const char
     *p;
 
-  register size_t
+  size_t
     i,
     j;
 
@@ -1582,7 +1582,7 @@
   const char
     *q;
 
-  register char
+  char
     *p;
 
   static char
@@ -1888,13 +1888,13 @@
   char
     *string;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -1977,11 +1977,11 @@
   char
     **argv;
 
-  register const char
+  const char
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   *argc=0;
@@ -2099,7 +2099,7 @@
   double
     *array;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -2191,13 +2191,13 @@
   char
     *q;
 
-  register char
+  char
     *p;
 
-  register const char
+  const char
     *r;
 
-  register int
+  int
     c,
     d;
 
@@ -2285,10 +2285,10 @@
   char
     **textlist;
 
-  register const char
+  const char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2306,7 +2306,7 @@
       break;
   if (*p == '\0')
     {
-      register const char
+      const char
         *q;
 
       /*
@@ -2342,10 +2342,10 @@
       char
         hex_string[MagickPathExtent];
 
-      register char
+      char
         *q;
 
-      register ssize_t
+      ssize_t
         j;
 
       /*
@@ -2465,7 +2465,7 @@
 */
 MagickExport void StripString(char *message)
 {
-  register char
+  char
     *p,
     *q;
 
@@ -2531,7 +2531,7 @@
   MagickBooleanType
     status;
 
-  register char
+  char
     *p;
 
   size_t
diff --git a/MagickCore/thread.c b/MagickCore/thread.c
index fd3b291..9a1210a 100644
--- a/MagickCore/thread.c
+++ b/MagickCore/thread.c
@@ -147,7 +147,7 @@
     MagickThreadValue
       *keys;
 
-    register ssize_t
+    ssize_t
       i;
 
     keys=(MagickThreadValue *) key;
diff --git a/MagickCore/threshold.c b/MagickCore/threshold.c
index 29ba04c..09d3f40 100644
--- a/MagickCore/threshold.c
+++ b/MagickCore/threshold.c
@@ -243,14 +243,14 @@
       channel_bias[MaxPixelChannels],
       channel_sum[MaxPixelChannels];
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict pixels;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       i,
       x;
 
@@ -404,7 +404,7 @@
     maximum_entropy,
     *white_entropy;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -501,7 +501,7 @@
     *sigma,
     threshold;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -585,7 +585,7 @@
     y1,
     y2;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -677,7 +677,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -700,10 +700,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -841,10 +841,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -860,7 +860,7 @@
       double
         pixel;
 
-      register ssize_t
+      ssize_t
         i;
 
       pixel=GetPixelIntensity(image,q);
@@ -1002,10 +1002,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1021,7 +1021,7 @@
       double
         pixel;
 
-      register ssize_t
+      ssize_t
         i;
 
       pixel=GetPixelIntensity(image,q);
@@ -1108,10 +1108,10 @@
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   if (image->storage_class == PseudoClass)
     {
-      register ssize_t
+      ssize_t
         i;
 
-      register PixelInfo
+      PixelInfo
         *magick_restrict q;
 
       q=image->colormap;
@@ -1137,10 +1137,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1153,7 +1153,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1325,10 +1325,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1344,7 +1344,7 @@
       MagickBooleanType
         foreground = MagickTrue;
 
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1519,7 +1519,7 @@
   double
     value;
 
-  register ssize_t
+  ssize_t
     i;
 
   ThresholdMap
@@ -1896,7 +1896,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1964,10 +1964,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1980,7 +1980,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       ssize_t
@@ -2098,10 +2098,10 @@
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   if (image->storage_class == PseudoClass)
     {
-      register ssize_t
+      ssize_t
         i;
 
-      register PixelInfo
+      PixelInfo
         *magick_restrict q;
 
       q=image->colormap;
@@ -2131,10 +2131,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -2147,7 +2147,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2265,10 +2265,10 @@
     const int
       id = GetOpenMPThreadId();
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2281,7 +2281,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2399,10 +2399,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -2418,7 +2418,7 @@
       double
         pixel;
 
-      register ssize_t
+      ssize_t
         i;
 
       pixel=GetPixelIntensity(image,q);
@@ -2577,10 +2577,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -2596,7 +2596,7 @@
       double
         pixel;
 
-      register ssize_t
+      ssize_t
         i;
 
       pixel=GetPixelIntensity(image,q);
diff --git a/MagickCore/token-private.h b/MagickCore/token-private.h
index bb5ec2d..c71c0d3 100644
--- a/MagickCore/token-private.h
+++ b/MagickCore/token-private.h
@@ -57,10 +57,10 @@
   int
     c;
 
-  register const unsigned char
+  const unsigned char
     *magick_restrict p;
 
-  register unsigned char
+  unsigned char
     *magick_restrict q;
 
   size_t
@@ -99,10 +99,10 @@
   int
     code;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register int
+  int
     c,
     unicode;
 
diff --git a/MagickCore/token.c b/MagickCore/token.c
index 990652c..f0af650 100644
--- a/MagickCore/token.c
+++ b/MagickCore/token.c
@@ -178,13 +178,13 @@
   double
     value;
 
-  register char
+  char
     *magick_restrict q;
 
-  register const char
+  const char
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(start != (const char *) NULL);
@@ -202,7 +202,7 @@
     case '`':
     case '{':
     {
-      register char
+      char
         escape;
 
       switch (*p)
@@ -360,7 +360,7 @@
     done,
     match;
 
-  register const char
+  const char
     *magick_restrict p;
 
   /*
@@ -511,7 +511,7 @@
         char
           *target;
 
-        register char
+        char
           *p;
 
         target=AcquireString(pattern);
@@ -602,7 +602,7 @@
   MagickBooleanType
     status = MagickFalse;
 
-  register const char
+  const char
     *p;
 
   if (IsPathAccessible(path) != MagickFalse)
@@ -797,7 +797,7 @@
 
 static ssize_t sindex(int c,const char *string)
 {
-  register const char
+  const char
     *p;
 
   for (p=string; *p != '\0'; p++)
@@ -809,7 +809,7 @@
 static void StoreToken(TokenInfo *token_info,char *string,
   size_t max_token_length,int c)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if ((token_info->offset < 0) ||
@@ -844,7 +844,7 @@
   int
     c;
 
-  register ssize_t
+  ssize_t
     i;
 
   *breaker='\0';
diff --git a/MagickCore/transform.c b/MagickCore/transform.c
index dc993c9..2b7c200 100644
--- a/MagickCore/transform.c
+++ b/MagickCore/transform.c
@@ -258,13 +258,13 @@
 #endif
   for (y=0; y < (ssize_t) extent.y; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -281,7 +281,7 @@
     {
       if ((x < extent.x) || (x >= (ssize_t) (extent.x+extent.width)))
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -323,13 +323,13 @@
 #endif
   for (y=0; y < (ssize_t) (image->rows-(extent.y+extent.height)); y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -347,7 +347,7 @@
     {
       if ((x < extent.x) || (x >= (ssize_t) (extent.x+extent.width)))
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -424,7 +424,7 @@
     *cmyk_image,
     *cmyk_images;
 
-  register ssize_t
+  ssize_t
     j;
 
   ssize_t
@@ -442,7 +442,7 @@
   cmyk_images=NewImageList();
   for (j=0; j < (ssize_t) GetImageListLength(images); j+=4)
   {
-    register ssize_t
+    ssize_t
       i;
 
     assert(images != (Image *) NULL);
@@ -459,13 +459,13 @@
       cmyk_view=AcquireAuthenticCacheView(cmyk_image,exception);
       for (y=0; y < (ssize_t) images->rows; y++)
       {
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         p=GetCacheViewVirtualPixels(image_view,0,y,images->columns,1,exception);
@@ -677,13 +677,13 @@
 #endif
   for (y=0; y < (ssize_t) crop_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -699,7 +699,7 @@
       }
     for (x=0; x < (ssize_t) crop_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1033,13 +1033,13 @@
 #endif
   for (y=0; y < (ssize_t) excerpt_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1055,7 +1055,7 @@
       }
     for (x=0; x < (ssize_t) excerpt_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1232,13 +1232,13 @@
 #endif
   for (y=0; y < (ssize_t) flip_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1253,7 +1253,7 @@
       }
     for (x=0; x < (ssize_t) flip_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1367,13 +1367,13 @@
 #endif
   for (y=0; y < (ssize_t) flop_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1389,7 +1389,7 @@
     q+=GetPixelChannels(flop_image)*flop_image->columns;
     for (x=0; x < (ssize_t) flop_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       q-=GetPixelChannels(flop_image);
@@ -1489,13 +1489,13 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -1512,7 +1512,7 @@
       }
     for (x=0; x < (ssize_t) columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(source); i++)
@@ -1811,13 +1811,13 @@
 #endif
   for (y=0; y < (ssize_t) splice_geometry.y; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1833,7 +1833,7 @@
       }
     for (x=0; x < columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1857,7 +1857,7 @@
       q+=GetPixelChannels(splice_image);
     for ( ; x < (ssize_t) splice_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1901,13 +1901,13 @@
   for (y=(ssize_t) (splice_geometry.y+splice_geometry.height);
        y < (ssize_t) splice_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1925,7 +1925,7 @@
       }
     for (x=0; x < columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1949,7 +1949,7 @@
       q+=GetPixelChannels(splice_image);
     for ( ; x < (ssize_t) splice_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2164,13 +2164,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2186,7 +2186,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2305,13 +2305,13 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2327,7 +2327,7 @@
     q+=GetPixelChannels(transverse_image)*image->columns;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       q-=GetPixelChannels(transverse_image);
diff --git a/MagickCore/type.c b/MagickCore/type.c
index 50f830b..cd89857 100644
--- a/MagickCore/type.c
+++ b/MagickCore/type.c
@@ -162,7 +162,7 @@
 
 static void *DestroyTypeNode(void *type_info)
 {
-  register TypeInfo
+  TypeInfo
     *p;
 
   p=(TypeInfo *) type_info;
@@ -333,10 +333,10 @@
   const TypeInfo
     *type_info;
 
-  register const TypeInfo
+  const TypeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -555,10 +555,10 @@
   const TypeInfo
     **fonts;
 
-  register const TypeInfo
+  const TypeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -629,7 +629,7 @@
 
 static int TypeCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -648,10 +648,10 @@
   char
     **fonts;
 
-  register const TypeInfo
+  const TypeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -753,7 +753,7 @@
     width,
     weight;
 
-  register ssize_t
+  ssize_t
     i;
 
   TypeInfo
@@ -947,7 +947,7 @@
   const TypeInfo
     **type_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/utility.c b/MagickCore/utility.c
index 01f8571..1fa17b6 100644
--- a/MagickCore/utility.c
+++ b/MagickCore/utility.c
@@ -348,11 +348,11 @@
   int
     state;
 
-  register const char
+  const char
     *p,
     *q;
 
-  register size_t
+  size_t
     i;
 
   unsigned char
@@ -504,10 +504,10 @@
   char
     *encode;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register size_t
+  size_t
     i;
 
   size_t
@@ -583,7 +583,7 @@
 */
 MagickPrivate void ChopPathComponents(char *path,const size_t components)
 {
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; i < (ssize_t) components; i++)
@@ -652,7 +652,7 @@
 #endif
         username[MagickPathExtent];
 
-      register char
+      char
         *p;
 
       struct passwd
@@ -751,7 +751,7 @@
     home_directory[MagickPathExtent],
     **vector;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -1226,7 +1226,7 @@
   char
     *q;
 
-  register char
+  char
     *p;
 
   size_t
@@ -1417,11 +1417,11 @@
   char
     **components;
 
-  register const char
+  const char
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   if (path == (char *) NULL)
@@ -1578,7 +1578,7 @@
 
 static int FileCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -1661,7 +1661,7 @@
           }
 #if defined(vms)
         {
-          register char
+          char
             *p;
 
           p=strchr(entry->d_name,';');
@@ -1839,7 +1839,7 @@
   MagickSizeType
     length;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1892,7 +1892,7 @@
     RandomInfo
       *random_info;
 
-    register MagickOffsetType
+    MagickOffsetType
       j;
 
     ssize_t
diff --git a/MagickCore/version.c b/MagickCore/version.c
index 4891797..1702896 100644
--- a/MagickCore/version.c
+++ b/MagickCore/version.c
@@ -498,7 +498,7 @@
 
 static unsigned int CRC32(const unsigned char *message,const size_t length)
 {
-  register ssize_t
+  ssize_t
     i;
 
   static MagickBooleanType
@@ -515,7 +515,7 @@
   */
   if (crc_initial == MagickFalse)
     {
-      register unsigned int
+      unsigned int
         j;
 
       unsigned int
@@ -523,7 +523,7 @@
 
       for (j=0; j < 256; j++)
       {
-        register ssize_t
+        ssize_t
           k;
 
         alpha=j;
@@ -541,7 +541,7 @@
 
 MagickExport unsigned int GetMagickSignature(const StringInfo *nonce)
 {
-  register unsigned char
+  unsigned char
     *p;
 
   StringInfo
diff --git a/MagickCore/vision.c b/MagickCore/vision.c
index 0282af4..2f8a38d 100644
--- a/MagickCore/vision.c
+++ b/MagickCore/vision.c
@@ -167,7 +167,7 @@
   RectangleInfo
     bounding_box;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -251,10 +251,10 @@
     dy=connectivity > 4 ? connect8[n][0] : connect4[n][0];
     for (y=0; y < (ssize_t) image->rows; y++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
-      register ssize_t
+      ssize_t
         x;
 
       if (status == MagickFalse)
@@ -353,13 +353,13 @@
   component_view=AcquireAuthenticCacheView(component_image,exception);
   for (y=0; y < (ssize_t) component_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -477,7 +477,7 @@
   artifact=GetImageArtifact(image,"connected-components:keep-colors");
   if (artifact != (const char *) NULL)
     {
-      register const char
+      const char
         *p;
 
       /*
@@ -493,7 +493,7 @@
         PixelInfo
           pixel;
 
-        register const char
+        const char
           *q;
 
         for (q=p; *q != '\0'; q++)
@@ -572,7 +572,7 @@
   artifact=GetImageArtifact(image,"connected-components:remove-colors");
   if (artifact != (const char *) NULL)
     {
-      register const char
+      const char
         *p;
 
       /*
@@ -586,7 +586,7 @@
         PixelInfo
           pixel;
 
-        register const char
+        const char
           *q;
 
         for (q=p; *q != '\0'; q++)
@@ -665,10 +665,10 @@
         bounding_box=object[i].bounding_box;
         for (y=(-1); y < (ssize_t) bounding_box.height+1; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (status == MagickFalse)
@@ -685,7 +685,7 @@
             Quantum
               pixels[4];
 
-            register ssize_t
+            ssize_t
               v;
 
             size_t
@@ -698,7 +698,7 @@
             foreground=0;
             for (v=0; v < 2; v++)
             {
-              register ssize_t
+              ssize_t
                 u;
 
               for (u=0; u < 2; u++)
@@ -777,10 +777,10 @@
         bounding_box=object[i].bounding_box;
         for (y=(-1); y < (ssize_t) bounding_box.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (status == MagickFalse)
@@ -797,7 +797,7 @@
             Quantum
               pixels[4];
 
-            register ssize_t
+            ssize_t
               v;
 
             size_t
@@ -810,7 +810,7 @@
             foreground=0;
             for (v=0; v < 2; v++)
             {
-              register ssize_t
+              ssize_t
                 u;
 
               for (u=0; u < 2; u++)
@@ -903,10 +903,10 @@
         RectangleInfo
           bounding_box;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
         ssize_t
@@ -1005,10 +1005,10 @@
         RectangleInfo
           bounding_box;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
         ssize_t
@@ -1109,10 +1109,10 @@
         RectangleInfo
           bounding_box;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
         ssize_t
@@ -1215,10 +1215,10 @@
         RectangleInfo
           bounding_box;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
         ssize_t
@@ -1312,7 +1312,7 @@
   object_view=AcquireVirtualCacheView(component_image,exception);
   for (i=0; i < (ssize_t) component_image->colors; i++)
   {
-    register ssize_t
+    ssize_t
       j;
 
     size_t
@@ -1330,10 +1330,10 @@
     bounding_box=object[i].bounding_box;
     for (y=0; y < (ssize_t) bounding_box.height; y++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
-      register ssize_t
+      ssize_t
         x;
 
       if (status == MagickFalse)
@@ -1347,7 +1347,7 @@
         }
       for (x=0; x < (ssize_t) bounding_box.width; x++)
       {
-        register ssize_t
+        ssize_t
           n;
 
         if (status == MagickFalse)
@@ -1356,7 +1356,7 @@
         if (j == i)
           for (n=0; n < (ssize_t) (connectivity > 4 ? 4 : 2); n++)
           {
-            register const Quantum
+            const Quantum
               *p;
 
             /*
@@ -1390,10 +1390,10 @@
     object[i].area=0.0;
     for (y=0; y < (ssize_t) bounding_box.height; y++)
     {
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register ssize_t
+      ssize_t
         x;
 
       if (status == MagickFalse)
@@ -1448,10 +1448,10 @@
       component_view=AcquireVirtualCacheView(component_image,exception);
       for (y=0; y < (ssize_t) component_image->rows; y++)
       {
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -1495,7 +1495,7 @@
         CCObjectInfoCompare);
       if (objects == (CCObjectInfo **) NULL)
         {
-          register ssize_t
+          ssize_t
             j;
 
           artifact=GetImageArtifact(image,
diff --git a/MagickCore/visual-effects.c b/MagickCore/visual-effects.c
index 560beab..339f0e1 100644
--- a/MagickCore/visual-effects.c
+++ b/MagickCore/visual-effects.c
@@ -206,13 +206,13 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -227,7 +227,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -363,13 +363,13 @@
     Quantum
       quantum;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -622,10 +622,10 @@
     MagickBooleanType
       sync;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -639,7 +639,7 @@
       }
     for (x=0; x < (ssize_t) colorize_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(colorize_image); i++)
@@ -747,7 +747,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -823,13 +823,13 @@
     PixelInfo
       pixel;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -845,7 +845,7 @@
     GetPixelInfo(image,&pixel);
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         v;
 
       size_t
@@ -1032,13 +1032,13 @@
     PointInfo
       delta;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1055,7 +1055,7 @@
     delta.y=scale.y*(double) (y-center.y);
     for (x=0; x < (ssize_t) canvas_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       /*
@@ -1170,10 +1170,10 @@
   MagickOffsetType
     scene;
 
-  register const Image
+  const Image
     *next;
 
-  register ssize_t
+  ssize_t
     n;
 
   ssize_t
@@ -1268,13 +1268,13 @@
         MagickBooleanType
           sync;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -1290,7 +1290,7 @@
           }
         for (x=0; x < (ssize_t) morph_images->columns; x++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) GetPixelChannels(morph_image); i++)
@@ -1408,14 +1408,14 @@
   MagickStatusType
     status;
 
-  register const Quantum
+  const Quantum
     *magick_restrict u,
     *magick_restrict v;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1916,13 +1916,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -2082,10 +2082,10 @@
   image_view=AcquireAuthenticCacheView(border_image,exception);
   for (y=0; y < (ssize_t) border_image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2213,10 +2213,10 @@
     const int
       id = GetOpenMPThreadId();
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2233,7 +2233,7 @@
       double
         value;
 
-      register ssize_t
+      ssize_t
         i;
 
       value=GetPseudoRandomValue(random_info[id]);
@@ -2351,7 +2351,7 @@
     (void) SetImageColorspace(image,sRGBColorspace,exception);
   if (image->storage_class == PseudoClass)
     {
-      register ssize_t
+      ssize_t
         i;
 
       /*
@@ -2380,10 +2380,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -2396,7 +2396,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2483,10 +2483,10 @@
   PixelInfo
     pixel;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -2696,14 +2696,14 @@
   status=MagickTrue;
   for (y=0; y < (ssize_t) stereo_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict r;
 
     p=GetVirtualPixels(left_image,-x_offset,y-y_offset,image->columns,1,
@@ -2864,13 +2864,13 @@
     PointInfo
       delta;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -2894,7 +2894,7 @@
       distance=delta.x*delta.x+delta.y*delta.y;
       if (distance >= (radius*radius))
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) GetPixelChannels(canvas_image); i++)
@@ -3086,13 +3086,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3311,7 +3311,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -3374,13 +3374,13 @@
 #endif
   for (y=0; y < (ssize_t) wave_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3472,7 +3472,7 @@
     *magick_restrict q,
     *magick_restrict r;
 
-  register ssize_t
+  ssize_t
     i;
 
   p=pixels;
@@ -3574,7 +3574,7 @@
   noise_view=AcquireAuthenticCacheView(noise_image,exception);
   for (channel=0; channel < (ssize_t) GetPixelChannels(image); channel++)
   {
-    register ssize_t
+    ssize_t
       i;
 
     size_t
@@ -3607,7 +3607,7 @@
     i=0;
     for (y=0; y < (ssize_t) image->rows; y++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
       ssize_t
@@ -3650,11 +3650,11 @@
         const int
           id = GetOpenMPThreadId();
 
-        register float
+        float
           *magick_restrict p,
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         p=kernel+id*image->columns;
@@ -3673,11 +3673,11 @@
         const int
           id = GetOpenMPThreadId();
 
-        register float
+        float
           *magick_restrict p,
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           y;
 
         p=kernel+id*image->rows;
@@ -3718,10 +3718,10 @@
       MagickBooleanType
         sync;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register ssize_t
+      ssize_t
         x;
 
       ssize_t
diff --git a/MagickCore/vms.c b/MagickCore/vms.c
index 06f65a2..28e2a98 100644
--- a/MagickCore/vms.c
+++ b/MagickCore/vms.c
@@ -171,10 +171,10 @@
   int
     status;
 
-  register char
+  char
     *p;
 
-  register int
+  int
     i;
 
   struct dsc$descriptor_s
diff --git a/MagickCore/widget.c b/MagickCore/widget.c
index 07077fe..78069bb 100644
--- a/MagickCore/widget.c
+++ b/MagickCore/widget.c
@@ -512,7 +512,7 @@
     x,
     y;
 
-  register int
+  int
     i;
 
   unsigned int
@@ -1138,11 +1138,11 @@
     }
     default:
     {
-      register char
+      char
         *p,
         *q;
 
-      register int
+      int
         i;
 
       if (state & ControlState)
@@ -1625,7 +1625,7 @@
     x,
     y;
 
-  register int
+  int
     i;
 
   static char
@@ -2895,7 +2895,7 @@
     id,
     y;
 
-  register int
+  int
     i;
 
   static unsigned int
@@ -3643,7 +3643,7 @@
   int
     x;
 
-  register int
+  int
     i;
 
   static MagickBooleanType
@@ -4230,7 +4230,7 @@
     x,
     y;
 
-  register ssize_t
+  ssize_t
     i;
 
   static char
@@ -4410,7 +4410,7 @@
         special_info.y=action_info.y;
         if (anomaly == MagickFalse)
           {
-            register char
+            char
               *p;
 
             special_info.text=(char *) FormatButtonText;
@@ -4787,7 +4787,7 @@
             XDrawMatteText(display,&windows->widget,&reply_info);
             if (id == list_info.id)
               {
-                register char
+                char
                   *p;
 
                 p=reply_info.text+strlen(reply_info.text)-1;
@@ -5450,7 +5450,7 @@
 
 static int FontCompare(const void *x,const void *y)
 {
-  register char
+  char
     *p,
     *q;
 
@@ -5490,7 +5490,7 @@
     x,
     y;
 
-  register int
+  int
     i;
 
   static char
@@ -6759,7 +6759,7 @@
   int
     x;
 
-  register int
+  int
     i;
 
   static MagickStatusType
@@ -8446,7 +8446,7 @@
     x,
     y;
 
-  register int
+  int
     i;
 
   Status
@@ -8966,7 +8966,7 @@
   char
     primary_selection[MagickPathExtent];
 
-  register int
+  int
     i;
 
   static MagickStatusType
diff --git a/MagickCore/xml-tree.c b/MagickCore/xml-tree.c
index e655c20..751dd82 100644
--- a/MagickCore/xml-tree.c
+++ b/MagickCore/xml-tree.c
@@ -220,7 +220,7 @@
     subnode[MagickPathExtent],
     tag[MagickPathExtent];
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -304,10 +304,10 @@
     *base64,
     *canonical_content;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -438,7 +438,7 @@
 
 static char **DestroyXMLTreeAttributes(char **attributes)
 {
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -497,7 +497,7 @@
   char
     **attributes;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -607,7 +607,7 @@
   MagickOffsetType
     offset;
 
-  register size_t
+  size_t
     i;
 
   size_t
@@ -779,7 +779,7 @@
 MagickExport const char *GetXMLTreeAttribute(XMLTreeInfo *xml_info,
   const char *tag)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -848,7 +848,7 @@
 MagickPrivate MagickBooleanType GetXMLTreeAttributes(
   const XMLTreeInfo *xml_info,SplayTreeInfo *attributes)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(xml_info != (XMLTreeInfo *) NULL);
@@ -1008,7 +1008,7 @@
     subnode[MagickPathExtent],
     tag[MagickPathExtent];
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1079,7 +1079,7 @@
 MagickPrivate const char **GetXMLTreeProcessingInstructions(
   XMLTreeInfo *xml_info,const char *target)
 {
-  register ssize_t
+  ssize_t
     i;
 
   XMLTreeRoot
@@ -1298,7 +1298,7 @@
     c,
     encoding;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1377,11 +1377,11 @@
     byte,
     c;
 
-  register char
+  char
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1588,7 +1588,7 @@
 static MagickBooleanType ValidateEntities(char *tag,char *xml,
   const size_t depth,char **entities)
 {
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1620,7 +1620,7 @@
   char
     *target;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1701,7 +1701,7 @@
     *t,
     *v;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1940,7 +1940,7 @@
 
 static inline MagickBooleanType IsSkipTag(const char *tag)
 {
-  register ssize_t
+  ssize_t
     i;
 
   i=0;
@@ -1968,10 +1968,10 @@
   MagickBooleanType
     status;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2492,7 +2492,7 @@
 MagickPrivate XMLTreeInfo *SetXMLTreeAttribute(XMLTreeInfo *xml_info,
   const char *tag,const char *value)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2661,7 +2661,7 @@
   const char
     *attribute;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2763,11 +2763,11 @@
   char
     *xml;
 
-  register char
+  char
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/xwindow.c b/MagickCore/xwindow.c
index f8b60c8..a4f64bb 100644
--- a/MagickCore/xwindow.c
+++ b/MagickCore/xwindow.c
@@ -246,7 +246,7 @@
 */
 MagickExport void DestroyXResources(void)
 {
-  register int
+  int
     i;
 
   unsigned int
@@ -569,10 +569,10 @@
   annotate_view=AcquireAuthenticCacheView(annotate_image,exception);
   for (y=0; y < (int) annotate_image->rows; y++)
   {
-    register int
+    int
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=GetCacheViewAuthenticPixels(annotate_view,0,(ssize_t) y,
@@ -747,11 +747,11 @@
   char
     **fontlist;
 
-  register char
+  char
     *p,
     *q;
 
-  register int
+  int
     i;
 
   unsigned int
@@ -820,7 +820,7 @@
   char
     *font_name;
 
-  register const char
+  const char
     **p;
 
   XFontStruct
@@ -835,7 +835,7 @@
       char
         **fontlist;
 
-      register int
+      int
         i;
 
       /*
@@ -1040,10 +1040,10 @@
   double
     min_distance;
 
-  register double
+  double
     distance;
 
-  register int
+  int
     i,
     j;
 
@@ -1165,7 +1165,7 @@
   int
     visual_mask;
 
-  register int
+  int
     i;
 
   size_t
@@ -1962,7 +1962,7 @@
   int
     unique_file;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2139,13 +2139,13 @@
   PixelInfo
     color;
 
-  register char
+  char
     *q;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register int
+  int
     i,
     j,
     x;
@@ -2153,7 +2153,7 @@
   unsigned int
     scanline_pad;
 
-  register size_t
+  size_t
     pixel;
 
   unsigned char
@@ -2468,10 +2468,10 @@
   draw_view=AcquireAuthenticCacheView(draw_image,exception);
   for (y=0; y < (int) draw_image->rows; y++)
   {
-    register int
+    int
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=QueueCacheViewAuthenticPixels(draw_view,0,(ssize_t) y,draw_image->columns,
@@ -2594,10 +2594,10 @@
   draw_view=AcquireAuthenticCacheView(draw_image,exception);
   for (y=0; y < (int) draw_image->rows; y++)
   {
-    register int
+    int
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=GetCacheViewAuthenticPixels(draw_view,0,(ssize_t) y,draw_image->columns,1,
@@ -3032,7 +3032,7 @@
   Colormap
     colormap;
 
-  register ssize_t
+  ssize_t
     i;
 
   Status
@@ -3356,7 +3356,7 @@
   int
     c;
 
-  register const char
+  const char
     *p;
 
   XrmDatabase
@@ -4000,7 +4000,7 @@
   RectangleInfo
     crop_info;
 
-  register int
+  int
     i;
 
   static ColormapInfo
@@ -4158,14 +4158,14 @@
       MagickBooleanType
         import;
 
-      register int
+      int
         j,
         x;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register size_t
+      size_t
         pixel;
 
       unsigned int
@@ -4326,7 +4326,7 @@
           case DirectClass:
           default:
           {
-            register size_t
+            size_t
               color,
               index;
 
@@ -5859,13 +5859,13 @@
   int
     y;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register int
+  int
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   unsigned char
@@ -5929,7 +5929,7 @@
   canvas_view=AcquireVirtualCacheView(canvas,exception);
   if (ximage->format == XYBitmap)
     {
-      register unsigned short
+      unsigned short
         polarity;
 
       unsigned char
@@ -5985,7 +5985,7 @@
       {
         case 2:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6037,7 +6037,7 @@
         }
         case 4:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6105,10 +6105,10 @@
         }
         default:
         {
-          register int
+          int
             k;
 
-          register unsigned int
+          unsigned int
             bytes_per_pixel;
 
           /*
@@ -6141,7 +6141,7 @@
       {
         case 2:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6194,7 +6194,7 @@
         }
         case 4:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6352,10 +6352,10 @@
               }
             else
               {
-                register int
+                int
                   k;
 
-                register unsigned int
+                unsigned int
                   bytes_per_pixel;
 
                 /*
@@ -6476,13 +6476,13 @@
   int
     y;
 
-  register int
+  int
     x;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register unsigned char
+  unsigned char
     *q;
 
   unsigned char
@@ -6546,7 +6546,7 @@
   canvas_view=AcquireVirtualCacheView(canvas,exception);
   if (ximage->format == XYBitmap)
     {
-      register unsigned short
+      unsigned short
         polarity;
 
       unsigned char
@@ -6602,7 +6602,7 @@
       {
         case 2:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6655,7 +6655,7 @@
         }
         case 4:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6724,10 +6724,10 @@
         }
         default:
         {
-          register int
+          int
             k;
 
-          register unsigned int
+          unsigned int
             bytes_per_pixel;
 
           unsigned char
@@ -6766,7 +6766,7 @@
       {
         case 2:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6819,7 +6819,7 @@
         }
         case 4:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6977,10 +6977,10 @@
               }
             else
               {
-                register int
+                int
                   k;
 
-                register unsigned int
+                unsigned int
                   bytes_per_pixel;
 
                 unsigned char
@@ -7094,13 +7094,13 @@
   PixelInfo
     pixel;
 
-  register int
+  int
     x;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *p,
     *q;
 
@@ -7195,14 +7195,14 @@
     ((width*windows->magnify.ximage->bits_per_pixel) >> 3));
   if (ximage->bits_per_pixel < 8)
     {
-      register unsigned char
+      unsigned char
         background,
         byte,
         foreground,
         p_bit,
         q_bit;
 
-      register unsigned int
+      unsigned int
         plane;
 
       XPixelInfo
@@ -7391,7 +7391,7 @@
       }
       default:
       {
-        register unsigned int
+        unsigned int
           bytes_per_pixel,
           m;
 
@@ -7714,7 +7714,7 @@
   Colormap
     colormap;
 
-  register ssize_t
+  ssize_t
     i;
 
   Status
@@ -7756,7 +7756,7 @@
             Image
               *affinity_image;
 
-            register Quantum
+            Quantum
               *magick_restrict q;
 
             /*
@@ -7939,7 +7939,7 @@
           int
             y;
 
-          register int
+          int
             x;
 
           unsigned short
@@ -7967,10 +7967,10 @@
           image_view=AcquireAuthenticCacheView(image,exception);
           for (y=0; y < (int) image->rows; y++)
           {
-            register int
+            int
               x;
 
-            register const Quantum
+            const Quantum
               *magick_restrict p;
 
             p=GetCacheViewAuthenticPixels(image_view,0,(ssize_t) y,
@@ -8391,7 +8391,7 @@
       int
         flags;
 
-      register char
+      char
         *p;
 
       /*
@@ -8581,7 +8581,7 @@
   const char
     *locale_message;
 
-  register char
+  char
     *p;
 
   (void) CopyMagickString(tag,text,MagickPathExtent);
@@ -9694,7 +9694,7 @@
   RectangleInfo
     rectangle_info;
 
-  register int
+  int
     i;
 
   Status
@@ -9769,7 +9769,7 @@
 MagickPrivate Window XWindowByName(Display *display,const Window root_window,
   const char *name)
 {
-  register int
+  int
     i;
 
   Status