diff --git a/Magick++/lib/Thread.cpp b/Magick++/lib/Thread.cpp
index 310794c..1fa8788 100644
--- a/Magick++/lib/Thread.cpp
+++ b/Magick++/lib/Thread.cpp
@@ -8,6 +8,7 @@
 #define MAGICKCORE_IMPLEMENTATION  1
 #define MAGICK_PLUSPLUS_IMPLEMENTATION 1
 
+#include <cstring>
 #include "Magick++/Thread.h"
 #include "Magick++/Exception.h"
 
@@ -28,7 +29,7 @@
         return;
       }
   throwExceptionExplicit( OptionError, "mutex initialization failed",
-                          MagickCore::strerror(sysError) );
+                          strerror(sysError) );
 }
 #else
 #if defined(_VISUALC_) && defined(_MT)
@@ -63,7 +64,7 @@
   if ( (sysError = ::pthread_mutex_destroy( &_mutex )) == 0 )
     return;
   throwExceptionExplicit( OptionError, "mutex destruction failed",
-                          MagickCore::strerror(sysError) );
+                          strerror(sysError) );
 #endif
 #if defined(_MT) && defined(_VISUALC_)
   if ( ::CloseHandle(_mutex.id) != 0 )
@@ -80,7 +81,7 @@
   if ( (sysError = ::pthread_mutex_lock( &_mutex )) == 0)
     return;
   throwExceptionExplicit( OptionError, "mutex lock failed",
-                          MagickCore::strerror(sysError));
+                          strerror(sysError));
 #endif
 #if defined(_MT) && defined(_VISUALC_)
   if (WaitForSingleObject(_mutex.id,INFINITE) != WAIT_FAILED)
@@ -97,7 +98,7 @@
   if ( (sysError = ::pthread_mutex_unlock( &_mutex )) == 0)
     return;
   throwExceptionExplicit( OptionError, "mutex unlock failed",
-                          MagickCore::strerror(sysError) );
+                          strerror(sysError) );
 #endif
 #if defined(_MT) && defined(_VISUALC_)
   if ( ReleaseSemaphore(_mutex.id, 1, NULL) == TRUE )