diff --git a/programs/util/strerror.c b/programs/util/strerror.c
index 9145e74..2215f07 100644
--- a/programs/util/strerror.c
+++ b/programs/util/strerror.c
@@ -20,20 +20,20 @@
  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#if !defined(POLARSSL_CONFIG_FILE)
+#if !defined(MBEDTLS_CONFIG_FILE)
 #include "mbedtls/config.h"
 #else
-#include POLARSSL_CONFIG_FILE
+#include MBEDTLS_CONFIG_FILE
 #endif
 
-#if defined(POLARSSL_PLATFORM_C)
+#if defined(MBEDTLS_PLATFORM_C)
 #include "mbedtls/platform.h"
 #else
 #include <stdio.h>
-#define polarssl_printf     printf
+#define mbedtls_printf     printf
 #endif
 
-#if defined(POLARSSL_ERROR_C) || defined(POLARSSL_ERROR_STRERROR_DUMMY)
+#if defined(MBEDTLS_ERROR_C) || defined(MBEDTLS_ERROR_STRERROR_DUMMY)
 #include "mbedtls/error.h"
 
 #include <stdio.h>
@@ -45,10 +45,10 @@
     "\n usage: strerror <errorcode>\n" \
     "\n where <errorcode> can be a decimal or hexadecimal (starts with 0x or -0x)\n"
 
-#if !defined(POLARSSL_ERROR_C) && !defined(POLARSSL_ERROR_STRERROR_DUMMY)
+#if !defined(MBEDTLS_ERROR_C) && !defined(MBEDTLS_ERROR_STRERROR_DUMMY)
 int main( void )
 {
-    polarssl_printf("POLARSSL_ERROR_C and/or POLARSSL_ERROR_STRERROR_DUMMY not defined.\n");
+    mbedtls_printf("MBEDTLS_ERROR_C and/or MBEDTLS_ERROR_STRERROR_DUMMY not defined.\n");
     return( 0 );
 }
 #else
@@ -59,7 +59,7 @@
 
     if( argc != 2 )
     {
-        polarssl_printf( USAGE );
+        mbedtls_printf( USAGE );
         return( 0 );
     }
 
@@ -69,7 +69,7 @@
         val = strtol( argv[1], &end, 16 );
         if( *end != '\0' )
         {
-            polarssl_printf( USAGE );
+            mbedtls_printf( USAGE );
             return( 0 );
         }
     }
@@ -79,15 +79,15 @@
     if( val != 0 )
     {
         char error_buf[200];
-        polarssl_strerror( val, error_buf, 200 );
-        polarssl_printf("Last error was: -0x%04x - %s\n\n", (int) -val, error_buf );
+        mbedtls_strerror( val, error_buf, 200 );
+        mbedtls_printf("Last error was: -0x%04x - %s\n\n", (int) -val, error_buf );
     }
 
 #if defined(_WIN32)
-    polarssl_printf( "  + Press Enter to exit this program.\n" );
+    mbedtls_printf( "  + Press Enter to exit this program.\n" );
     fflush( stdout ); getchar();
 #endif
 
     return( val );
 }
-#endif /* POLARSSL_ERROR_C */
+#endif /* MBEDTLS_ERROR_C */
