diff --git a/include/errmsg.h b/include/errmsg.h
index 4018e3ee01d8603080c328b3c871a0aab630f53f..dc7adb3b501d1278f08df8c071c4a3ad9f78957b 100644
--- a/include/errmsg.h
+++ b/include/errmsg.h
@@ -15,7 +15,7 @@
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
 
 /* Error messages for MySQL clients */
-/* (Error messages for the daemon are in share/language/errmsg.sys) */
+/* (Error messages for the daemon are in sql/share/errmsg.txt) */
 
 #ifdef	__cplusplus
 extern "C" {
diff --git a/sql/authors.h b/sql/authors.h
index 618c6305f6beba2f6b167ece5048a1db81cd43ed..980ec7670de948a6a4c9f0cb95ef3d59efd91232 100644
--- a/sql/authors.h
+++ b/sql/authors.h
@@ -85,6 +85,8 @@ struct show_table_authors_st show_table_authors[]= {
   { "Matthias Leich", "Berlin, Germany", "Testing - Server" },
   { "Dmitri Lenev", "Moscow, Russia",
     "Time zones support (4.1), Triggers (5.0)" },
+  { "Arjen Lentz", "Brisbane, Australia",
+    "Documentation (2001-2004), Dutch error messages, LOG2()" },
   { "Marc Liyanage", "", "Created Mac OS X packages" },
   { "Zarko Mocnik", "", "Sorting for Slovenian language" },
   { "Per-Erik Martin", "Uppsala, Sweden", "Stored Procedures (5.0)" },
diff --git a/sql/share/errmsg.txt b/sql/share/errmsg.txt
index 2228ded870bbf68f4c9acb54fdd1e4851847b034..28d81447c66cf1e7c0182420c326eec8fc9e4036 100644
--- a/sql/share/errmsg.txt
+++ b/sql/share/errmsg.txt
@@ -4710,6 +4710,7 @@ ER_MASTER_FATAL_ERROR_READING_BINLOG
 ER_SLAVE_IGNORED_TABLE  
         eng "Slave SQL thread ignored the query because of replicate-*-table rules"
         ger "Slave-SQL-Thread hat die Abfrage aufgrund von replicate-*-table-Regeln ignoriert"
+        nla "Slave SQL thread negeerde de query vanwege replicate-*-table opties"
         por "Slave SQL thread ignorado a consulta devido às normas de replicação-*-tabela"
         spa "Slave SQL thread ignorado el query debido a las reglas de replicación-*-tabla"
         swe "Slav SQL tråden ignorerade frågan pga en replicate-*-table regel"
@@ -4717,29 +4718,34 @@ ER_INCORRECT_GLOBAL_LOCAL_VAR
         eng "Variable '%-.64s' is a %s variable"
         serbian "Incorrect foreign key definition for '%-.64s': %s"
         ger "Variable '%-.64s' ist eine %s-Variable"
+        nla "Variabele '%-.64s' is geen %s variabele"
         spa "Variable '%-.64s' es una %s variable"
         swe "Variabel '%-.64s' är av typ %s"
 ER_WRONG_FK_DEF 42000 
         eng "Incorrect foreign key definition for '%-.64s': %s"
         ger "Falsche Fremdschlüssel-Definition für '%-.64s': %s"
+        nla "Incorrecte foreign key definitie voor '%-.64s': %s"
         por "Definição errada da chave estrangeira para '%-.64s': %s"
         spa "Equivocada definición de llave extranjera para '%-.64s': %s"
         swe "Felaktig FOREIGN KEY-definition för '%-.64s': %s"
 ER_KEY_REF_DO_NOT_MATCH_TABLE_REF  
         eng "Key reference and table reference don't match"
         ger "Schlüssel- und Tabellenverweis passen nicht zusammen"
+        nla "Sleutel- en tabelreferentie komen niet overeen"
         por "Referência da chave e referência da tabela não coincidem"
         spa "Referencia de llave y referencia de tabla no coinciden"
         swe "Nyckelreferensen och tabellreferensen stämmer inte överens"
 ER_OPERAND_COLUMNS 21000 
         eng "Operand should contain %d column(s)"
         ger "Operand sollte %d Spalte(n) enthalten"
+        nla "Operand behoort %d kolommen te bevatten"
         rus "ïÐÅÒÁÎÄ ÄÏÌÖÅÎ ÓÏÄÅÒÖÁÔØ %d ËÏÌÏÎÏË"
         spa "Operando debe tener %d columna(s)"
         ukr "ïÐÅÒÁÎÄ ÍÁ¤ ÓËÌÁÄÁÔÉÓÑ Ú %d ÓÔÏ×Âæ×"
 ER_SUBQUERY_NO_1_ROW 21000 
         eng "Subquery returns more than 1 row"
         ger "Unterabfrage lieferte mehr als einen Datensatz zurück"
+        nla "Subquery retourneert meer dan 1 rij"
         por "Subconsulta retorna mais que 1 registro"
         rus "ðÏÄÚÁÐÒÏÓ ×ÏÚ×ÒÁÝÁÅÔ ÂÏÌÅÅ ÏÄÎÏÊ ÚÁÐÉÓÉ"
         spa "Subconsulta retorna mas que 1 línea"
@@ -4749,6 +4755,7 @@ ER_UNKNOWN_STMT_HANDLER
         dan "Unknown prepared statement handler (%.*s) given to %s"
         eng "Unknown prepared statement handler (%.*s) given to %s"
         ger "Unbekannter Prepared-Statement-Handler (%.*s) für %s angegeben"
+        nla "Onebekende prepared statement handler (%.*s) voor %s aangegeven"
         por "Desconhecido manipulador de declaração preparado (%.*s) determinado para %s"
         spa "Desconocido preparado comando handler (%.*s) dado para %s"
         swe "Okänd PREPARED STATEMENT id (%.*s) var given till %s"
@@ -4756,12 +4763,14 @@ ER_UNKNOWN_STMT_HANDLER
 ER_CORRUPT_HELP_DB  
         eng "Help database is corrupt or does not exist"
         ger "Die Hilfe-Datenbank ist beschädigt oder existiert nicht"
+        nla "Help database is beschadigd of bestaat niet"
         por "Banco de dado de ajuda corrupto ou não existente"
         spa "Base de datos Help está corrupto o no existe"
         swe "Hjälpdatabasen finns inte eller är skadad"
 ER_CYCLIC_REFERENCE  
         eng "Cyclic reference on subqueries"
         ger "Zyklischer Verweis in Unterabfragen"
+        nla "Cyclische verwijzing in subqueries"
         por "Referência cíclica em subconsultas"
         rus "ãÉËÌÉÞÅÓËÁÑ ÓÓÙÌËÁ ÎÁ ÐÏÄÚÁÐÒÏÓ"
         spa "Cíclica referencia en subconsultas"
@@ -4770,6 +4779,7 @@ ER_CYCLIC_REFERENCE
 ER_AUTO_CONVERT  
         eng "Converting column '%s' from %s to %s"
         ger "Feld '%s' wird von %s nach %s umgewandelt"
+        nla "Veld '%s' wordt van %s naar %s geconverteerd"
         por "Convertendo coluna '%s' de %s para %s"
         rus "ðÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÐÏÌÑ '%s' ÉÚ %s × %s"
         spa "Convirtiendo columna '%s' de %s para %s"
@@ -4778,6 +4788,7 @@ ER_AUTO_CONVERT
 ER_ILLEGAL_REFERENCE 42S22 
         eng "Reference '%-.64s' not supported (%s)"
         ger "Verweis '%-.64s' wird nicht unterstützt (%s)"
+        nla "Verwijzing '%-.64s' niet ondersteund (%s)"
         por "Referência '%-.64s' não suportada (%s)"
         rus "óÓÙÌËÁ '%-.64s' ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ (%s)"
         spa "Referencia '%-.64s' no soportada (%s)"
@@ -4786,12 +4797,14 @@ ER_ILLEGAL_REFERENCE 42S22
 ER_DERIVED_MUST_HAVE_ALIAS 42000 
         eng "Every derived table must have its own alias"
         ger "Für jede abgeleitete Tabelle muss ein eigener Alias angegeben werden"
+        nla "Voor elke afgeleide tabel moet een unieke alias worden gebruikt"
         por "Cada tabela derivada deve ter seu próprio alias"
         spa "Cada tabla derivada debe tener su propio alias"
         swe "Varje 'derived table' måste ha sitt eget alias"
 ER_SELECT_REDUCED 01000 
         eng "Select %u was reduced during optimization"
         ger "Select %u wurde während der Optimierung reduziert"
+        nla "Select %u werd geredureerd tijdens optimtalisatie"
         por "Select %u foi reduzido durante otimização"
         rus "Select %u ÂÙÌ ÕÐÒÁÚÄÎÅÎ × ÐÒÏÃÅÓÓÅ ÏÐÔÉÍÉÚÁÃÉÉ"
         spa "Select %u fué reducido durante optimización"
@@ -4800,62 +4813,73 @@ ER_SELECT_REDUCED 01000
 ER_TABLENAME_NOT_ALLOWED_HERE 42000 
         eng "Table '%-.64s' from one of the SELECTs cannot be used in %-.32s"
         ger "Tabelle '%-.64s', die in einem der SELECT-Befehle verwendet wurde, kann nicht in %-.32s verwendet werden"
+        nla "Tabel '%-.64s' uit een van de SELECTS kan niet in %-.32s gebruikt worden"
         por "Tabela '%-.64s' de um dos SELECTs não pode ser usada em %-.32s"
         spa "Tabla '%-.64s' de uno de los SELECT no puede ser usada en %-.32s"
         swe "Tabell '%-.64s' från en SELECT kan inte användas i %-.32s"
 ER_NOT_SUPPORTED_AUTH_MODE 08004 
         eng "Client does not support authentication protocol requested by server; consider upgrading MySQL client"
         ger "Client unterstützt das vom Server erwartete Authentifizierungsprotokoll nicht. Bitte aktualisieren Sie Ihren MySQL-Client"
+        nla "Client ondersteunt het door de server verwachtte authenticatieprotocol niet. Overweeg een nieuwere MySQL client te gebruiken"
         por "Cliente não suporta o protocolo de autenticação exigido pelo servidor; considere a atualização do cliente MySQL"
         spa "Cliente no soporta protocolo de autenticación solicitado por el servidor; considere actualizar el cliente MySQL"
         swe "Klienten stöder inte autentiseringsprotokollet som begärts av servern; överväg uppgradering av klientprogrammet."
 ER_SPATIAL_CANT_HAVE_NULL 42000 
         eng "All parts of a SPATIAL index must be NOT NULL"
         ger "Alle Teile eines SPATIAL-Index müssen als NOT NULL deklariert sein"
+        nla "Alle delete van een  SPATIAL index dienen als NOT NULL gedeclareerd te worden"
         por "Todas as partes de uma SPATIAL index devem ser NOT NULL"
         spa "Todas las partes de una SPATIAL index deben ser NOT NULL"
         swe "Alla delar av en SPATIAL index måste vara NOT NULL"
 ER_COLLATION_CHARSET_MISMATCH 42000 
         eng "COLLATION '%s' is not valid for CHARACTER SET '%s'"
         ger "COLLATION '%s' ist für CHARACTER SET '%s' ungültig"
+        nla "COLLATION '%s' is niet geldig voor CHARACTER SET '%s'"
         por "COLLATION '%s' não é válida para CHARACTER SET '%s'"
         spa "COLLATION '%s' no es válido para CHARACTER SET '%s'"
         swe "COLLATION '%s' är inte tillåtet för CHARACTER SET '%s'"
 ER_SLAVE_WAS_RUNNING  
         eng "Slave is already running"
         ger "Slave läuft bereits"
+        nla "Slave is reeds actief"
         por "O slave já está rodando"
         spa "Slave ya está funcionando"
         swe "Slaven har redan startat"
 ER_SLAVE_WAS_NOT_RUNNING  
         eng "Slave already has been stopped"
         ger "Slave wurde bereits angehalten"
+        nla "Slave is reeds gestopt"
         por "O slave já está parado"
         spa "Slave ya fué parado"
         swe "Slaven har redan stoppat"
 ER_TOO_BIG_FOR_UNCOMPRESS  
         eng "Uncompressed data size too large; the maximum size is %d (probably, length of uncompressed data was corrupted)"
         ger "Unkomprimierte Daten sind zu groß. Die maximale Größe beträgt %d (wahrscheinlich wurde die Länge der unkomprimierten Daten beschädigt)"
+        nla "Ongecomprimeerder data is te groot; de maximum lengte is %d (waarschijnlijk, de lengte van de gecomprimeerde data was beschadigd)"
         por "Tamanho muito grande dos dados des comprimidos. O máximo tamanho é %d. (provavelmente, o comprimento dos dados descomprimidos está corrupto)"
         spa "Tamaño demasiado grande para datos descomprimidos. El máximo tamaño es %d. (probablemente, extensión de datos descomprimidos fué corrompida)"
 ER_ZLIB_Z_MEM_ERROR  
         eng "ZLIB: Not enough memory"
         ger "ZLIB: Nicht genug Speicher"
+        nla "ZLIB: Onvoldoende geheugen"
         por "ZLIB: Não suficiente memória disponível"
         spa "Z_MEM_ERROR: No suficiente memoria para zlib"
 ER_ZLIB_Z_BUF_ERROR  
         eng "ZLIB: Not enough room in the output buffer (probably, length of uncompressed data was corrupted)"
         ger "ZLIB: Im Ausgabepuffer ist nicht genug Platz vorhanden (wahrscheinlich wurde die Länge der unkomprimierten Daten beschädigt)"
+        nla "ZLIB: Onvoldoende ruimte in uitgaande buffer (waarschijnlijk, de lengte van de ongecomprimeerde data was beschadigd)"
         por "ZLIB: Não suficiente espaço no buffer emissor (provavelmente, o comprimento dos dados descomprimidos está corrupto)"
         spa "Z_BUF_ERROR: No suficiente espacio en el búfer de salida para zlib (probablemente, extensión de datos descomprimidos fué corrompida)"
 ER_ZLIB_Z_DATA_ERROR  
         eng "ZLIB: Input data corrupted"
         ger "ZLIB: Eingabedaten beschädigt"
+        nla "ZLIB: Invoer data beschadigd"
         por "ZLIB: Dados de entrada está corrupto"
         spa "ZLIB: Dato de entrada fué corrompido para zlib"
 ER_CUT_VALUE_GROUP_CONCAT  
         eng "%d line(s) were cut by GROUP_CONCAT()"
         ger "%d Zeile(n) durch GROUP_CONCAT() abgeschnitten"
+        nla "%d regel(s) door GROUP_CONCAT() ingekort"
         por "%d linha(s) foram cortada(s) por GROUP_CONCAT()"
         spa "%d línea(s) fue(fueron) cortadas por group_concat()"
         swe "%d rad(er) kapades av group_concat()"
@@ -4863,11 +4887,13 @@ ER_CUT_VALUE_GROUP_CONCAT
 ER_WARN_TOO_FEW_RECORDS 01000 
         eng "Row %ld doesn't contain data for all columns"
         ger "Zeile %ld enthält nicht für alle Felder Daten"
+        nla "Rij %ld bevat niet de data voor alle kolommen"
         por "Conta de registro é menor que a conta de coluna na linha %ld"
         spa "Línea %ld no contiene datos para todas las columnas"
 ER_WARN_TOO_MANY_RECORDS 01000 
         eng "Row %ld was truncated; it contained more data than there were input columns"
         ger "Zeile %ld gekürzt, die Zeile enthielt mehr Daten, als es Eingabefelder gibt"
+        nla "Regel %ld ingekort, bevatte meer data dan invoer kolommen"
         por "Conta de registro é maior que a conta de coluna na linha %ld"
         spa "Línea %ld fué truncada; La misma contine mas datos que las que existen en las columnas de entrada"
 ER_WARN_NULL_TO_NOTNULL 22004