diff --git a/scripts/data_files/error.fmt b/scripts/data_files/error.fmt
index c54ab90..4cf3a9d 100644
--- a/scripts/data_files/error.fmt
+++ b/scripts/data_files/error.fmt
@@ -42,38 +42,16 @@
 
 HEADER_INCLUDED
 
-typedef struct mbedtls_error
-{
-    int code;                   /* Error code. */
-    const char * description;   /* Error description. */
-} mbedtls_error_t;
-
-static mbedtls_error_t high_level_errors[] =
-{
-HIGH_LEVEL_CODE_CHECKS
-};
-
-#define NUM_HIGH_LEVEL_ERRORS ( sizeof(high_level_errors)/sizeof(mbedtls_error_t) )
-
-static mbedtls_error_t low_level_errors[] =
-{
-LOW_LEVEL_CODE_CHECKS
-};
-
-#define NUM_LOW_LEVEL_ERRORS  ( sizeof(low_level_errors)/sizeof(mbedtls_error_t) )
-
 const char * mbedtls_high_level_strerr( int error_code )
 {
-    size_t i;
     const char *error_description = NULL;
 
-    for(i = 0; i < NUM_HIGH_LEVEL_ERRORS; i++ )
+    switch( error_code )
     {
-        if( high_level_errors[i].code == error_code )
-        {
-            error_description = high_level_errors[i].description;
+HIGH_LEVEL_CODE_CHECKS
+
+        default:
             break;
-        }
     }
 
     return error_description;
@@ -81,16 +59,14 @@
 
 const char * mbedtls_low_level_strerr( int error_code )
 {
-    size_t i;
     const char *error_description = NULL;
 
-    for(i = 0; i < NUM_LOW_LEVEL_ERRORS; i++ )
+    switch( error_code )
     {
-        if( low_level_errors[i].code == error_code )
-        {
-            error_description = low_level_errors[i].description;
+LOW_LEVEL_CODE_CHECKS
+
+        default:
             break;
-        }
     }
 
     return error_description;
@@ -123,10 +99,12 @@
         else
             mbedtls_snprintf( buf, buflen, "%s", high_level_error_description );
 
+#if defined(MBEDTLS_SSL_TLS_C)
         // Early return in case of a fatal error - do not try to translate low
         // level code.
         if(use_ret == -(MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE))
             return;
+#endif /* MBEDTLS_SSL_TLS_C */
     }
 
     use_ret = ret & ~0xFF80;
diff --git a/scripts/generate_errors.pl b/scripts/generate_errors.pl
index ee9029d..cb59669 100755
--- a/scripts/generate_errors.pl
+++ b/scripts/generate_errors.pl
@@ -119,13 +119,13 @@
     {
         $code_check = \$ll_code_check;
         $old_define = \$ll_old_define;
-        $white_space = '    ';
+        $white_space = '        ';
     }
     else
     {
         $code_check = \$hl_code_check;
         $old_define = \$hl_old_define;
-        $white_space = '    ';
+        $white_space = '        ';
     }
 
     if ($define_name ne ${$old_define})
@@ -160,7 +160,9 @@
         ${$old_define} = $define_name;
     }
 
-    ${$code_check} .= "${white_space}\{.code = -($error_name), .description=\"$module_name - $description\"},\n";
+    ${$code_check} .= "${white_space}case -($error_name):\n".
+                      "${white_space}    error_description = \"$module_name - $description\";\n".
+                      "${white_space}    break;\n"
 };
 
 if ($ll_old_define ne "")
