release version 7.4
diff --git a/src/GvimExt/GvimExt.reg b/src/GvimExt/GvimExt.reg
index 074d174..4c67b09 100644
--- a/src/GvimExt/GvimExt.reg
+++ b/src/GvimExt/GvimExt.reg
@@ -15,6 +15,6 @@
 [HKEY_LOCAL_MACHINE\Software\Vim\Gvim]
    "path"="gvim.exe"
 
-[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Vim 7.4b]
-   "DisplayName"="Vim 7.4b: Edit with Vim popup menu entry"
+[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Vim 7.4]
+   "DisplayName"="Vim 7.4: Edit with Vim popup menu entry"
    "UninstallString"="uninstal.exe"
diff --git a/src/Makefile b/src/Makefile
index aea9142..c830378 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -949,7 +949,7 @@
 
 ### Vim version (adjusted by a script)
 VIMMAJOR = 7
-VIMMINOR = 4b
+VIMMINOR = 4
 
 ### Location of Vim files (should not need to be changed, and  {{{1
 ### some things might not work when they are changed!)
diff --git a/src/gui_w48.c b/src/gui_w48.c
index 164a9f9..345d4da 100644
--- a/src/gui_w48.c
+++ b/src/gui_w48.c
@@ -129,6 +129,7 @@
 typedef void VOID;
 typedef int LPNMHDR;
 typedef int LONG;
+typedef int WNDPROC;
 #endif
 
 #ifndef GET_X_LPARAM
diff --git a/src/po/it.po b/src/po/it.po
index c6b377e..aabd20e 100644
--- a/src/po/it.po
+++ b/src/po/it.po
@@ -11,10 +11,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: vim 7.3\n"
+"Project-Id-Version: vim 7.4b\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-03-10 11:10+0100\n"
-"PO-Revision-Date:  2011-03-12 07:08+0100\n"
+"POT-Creation-Date: 2013-07-29 16:11+0200\n"
+"PO-Revision-Date:  2013-08-03 17:14+0200\n"
 "Last-Translator:   Vlad Sandrini   <vlad.gently@gmail.com>\n"
 "Language-Team:     Italian"
 "                   Antonio Colombo <azc100@gmail.com>"
@@ -45,6 +45,9 @@
 msgid "[Quickfix List]"
 msgstr "[Lista Quickfix]"
 
+msgid "E855: Autocommands caused command to abort"
+msgstr "E855: Comando non completato a causa di autocomandi"
+
 msgid "E82: Cannot allocate any buffer, exiting..."
 msgstr "E82: Non riesco ad allocare alcun buffer, esco..."
 
@@ -140,18 +143,18 @@
 msgid "[Read errors]"
 msgstr "[Errori in lettura]"
 
+msgid "[RO]"
+msgstr "[Sola Lettura]"
+
 msgid "[readonly]"
 msgstr "[in sola lettura]"
 
-#, c-format
 msgid "1 line --%d%%--"
 msgstr "1 linea --%d%%--"
 
-#, c-format
 msgid "%ld lines --%d%%--"
 msgstr "%ld linee --%d%%--"
 
-#, c-format
 msgid "line %ld of %ld --%d%%-- col "
 msgstr "linea %ld di %ld --%d%%-- col "
 
@@ -177,7 +180,6 @@
 msgid "Top"
 msgstr "Cim"
 
-#, c-format
 msgid ""
 "\n"
 "# Buffer list:\n"
@@ -423,6 +425,10 @@
 msgid "E461: Illegal variable name: %s"
 msgstr "E461: Nome di variabile non ammesso: %s"
 
+# nuovo
+msgid "E806: using Float as a String"
+msgstr "E806: uso di un numero con virgola come stringa"
+
 msgid "E687: Less targets than List items"
 msgstr "E687: Destinazioni più numerose degli elementi di Lista"
 
@@ -565,6 +571,9 @@
 msgid "E808: Number or Float required"
 msgstr "E808: Ci vuole un numero intero o con virgola"
 
+msgid "add() argument"
+msgstr "argomento di add()"
+
 msgid "E699: Too many arguments"
 msgstr "E699: Troppi argomenti"
 
@@ -583,6 +592,15 @@
 msgid "E737: Key already exists: %s"
 msgstr "E737: Chiave già esistente: %s"
 
+msgid "extend() argument"
+msgstr "argomento di extend()"
+
+msgid "map() argument"
+msgstr "argomento di map()"
+
+msgid "filter() argument"
+msgstr "argomento di filter()"
+
 #, c-format
 msgid "+-%s%3ld lines: "
 msgstr "+-%s%3ld linee: "
@@ -601,6 +619,9 @@
 msgid "called inputrestore() more often than inputsave()"
 msgstr "inputrestore() chiamata più volte di inputsave()"
 
+msgid "insert() argument"
+msgstr "argomento di insert()"
+
 msgid "E786: Range not allowed"
 msgstr "E786: Intervallo non consentito"
 
@@ -626,12 +647,21 @@
 msgid "E277: Unable to read a server reply"
 msgstr "E277: Non riesco a leggere una risposta del server"
 
+msgid "remove() argument"
+msgstr "argomento di remove()"
+
 msgid "E655: Too many symbolic links (cycle?)"
 msgstr "E655: Troppi link simbolici (circolarità?)"
 
+msgid "reverse() argument"
+msgstr "argomento di reverse()"
+
 msgid "E258: Unable to send to client"
 msgstr "E258: Impossibile inviare al client"
 
+msgid "sort() argument"
+msgstr "argomento di sort()"
+
 msgid "E702: Sort compare function failed"
 msgstr "E702: Funzione confronto nel sort non riuscita"
 
@@ -662,8 +692,13 @@
 msgid "E731: using Dictionary as a String"
 msgstr "E731: uso di Dizionario come Stringa"
 
-msgid "E806: using Float as a String"
-msgstr "E806: uso di un numero con virgola come stringa"
+#, c-format
+msgid "E706: Variable type mismatch for: %s"
+msgstr "E706: Tipo di variabile non corrispondente per: %s"
+
+#, c-format
+msgid "E795: Cannot delete variable %s"
+msgstr "E795: Non posso cancellare la variabile %s"
 
 #, c-format
 msgid "E704: Funcref variable name must start with a capital: %s"
@@ -675,14 +710,6 @@
 msgstr "E705: Nome di variabile in conflitto con una funzione esistente: %s"
 
 #, c-format
-msgid "E706: Variable type mismatch for: %s"
-msgstr "E706: Tipo di variabile non corrispondente per: %s"
-
-#, c-format
-msgid "E795: Cannot delete variable %s"
-msgstr "E795: Non posso cancellare la variabile %s"
-
-#, c-format
 msgid "E741: Value is locked: %s"
 msgstr "E741: Valore di %s non modificabile"
 
@@ -704,10 +731,17 @@
 msgid "E124: Missing '(': %s"
 msgstr "E124: Manca '(': %s"
 
+msgid "E862: Cannot use g: here"
+msgstr "E862: Non si può usare g: qui"
+
 #, c-format
 msgid "E125: Illegal argument: %s"
 msgstr "E125: Argomento non ammesso: %s"
 
+#, c-format
+msgid "E853: Duplicate argument name: %s"
+msgstr "E853: Nome argomento duplicato: %s"
+
 msgid "E126: Missing :endfunction"
 msgstr "E126: Manca :endfunction"
 
@@ -852,7 +886,6 @@
 msgid "# This viminfo file was generated by Vim %s.\n"
 msgstr "# Questo file viminfo è stato generato da Vim %s.\n"
 
-#, c-format
 msgid ""
 "# You may edit it if you're careful!\n"
 "\n"
@@ -860,7 +893,6 @@
 "# File modificabile, attento a quel che fai!\n"
 "\n"
 
-#, c-format
 msgid "# Value of 'encoding' when this file was written\n"
 msgstr "# Valore di 'encoding' al momento della scrittura di questo file\n"
 
@@ -973,6 +1005,9 @@
 msgstr "Espressione trovata su ogni linea: %s"
 
 #, c-format
+msgid "Pattern not found: %s"
+msgstr "Espressione non trovata: %s"
+
 msgid ""
 "\n"
 "# Last Substitute String:\n"
@@ -1301,8 +1336,8 @@
 msgstr "sconosciuto"
 
 #, c-format
-msgid "E185: Cannot find color scheme %s"
-msgstr "E185: Non riesco a trovare schema colore %s"
+msgid "E185: Cannot find color scheme '%s'"
+msgstr "E185: Non riesco a trovare schema colore '%s'"
 
 msgid "Greetings, Vim user!"
 msgstr "Salve, utente Vim!"
@@ -1623,9 +1658,6 @@
 msgid "[character special]"
 msgstr "[character special]"
 
-msgid "[RO]"
-msgstr "[Sola Lettura]"
-
 msgid "[CR missing]"
 msgstr "[manca CR]"
 
@@ -2022,6 +2054,12 @@
 msgid "E228: makemap: Illegal mode"
 msgstr "E228: makemap: modo non consentito"
 
+msgid "E851: Failed to create a new process for the GUI"
+msgstr "E851: Creazione di un nuovo processo fallita per la GUI"
+
+msgid "E852: The child process failed to start the GUI"
+msgstr "E852: Il processo figlio non è riuscito a far partire la GUI"
+
 msgid "E229: Cannot start the GUI"
 msgstr "E229: Non posso inizializzare la GUI"
 
@@ -2230,32 +2268,28 @@
 msgstr "Il font '%s' non di larghezza fissa"
 
 #, c-format
-msgid "E253: Fontset name: %s\n"
-msgstr "E253: Nome fontset: %s\n"
+msgid "E253: Fontset name: %s"
+msgstr "E253: Nome fontset: %s"
 
 #, c-format
-msgid "Font0: %s\n"
-msgstr "Font0: %s\n"
+msgid "Font0: %s"
+msgstr "Font0: %s"
 
 #, c-format
-msgid "Font1: %s\n"
-msgstr "Font1: %s\n"
+msgid "Font1: %s"
+msgstr "Font1: %s"
 
 #, c-format
-msgid "Font%ld width is not twice that of font0\n"
-msgstr "La larghezza di font%ld non è doppia di quella di font0\n"
+msgid "Font%ld width is not twice that of font0"
+msgstr "La larghezza di font%ld non è doppia di quella di font0"
 
 #, c-format
-msgid "Font0 width: %ld\n"
-msgstr "Larghezza di Font0: %ld\n"
+msgid "Font0 width: %ld"
+msgstr "Larghezza di Font0: %ld"
 
 #, c-format
-msgid ""
-"Font1 width: %ld\n"
-"\n"
-msgstr ""
-"Larghezza di Font1: %ld\n"
-"\n"
+msgid "Font1 width: %ld"
+msgstr "Larghezza di Font1: %ld"
 
 msgid "Invalid font specification"
 msgstr "Specifica di font non valida"
@@ -2442,6 +2476,9 @@
 msgid "E622: Could not fork for cscope"
 msgstr "E622: Non riesco a fare fork per cscope"
 
+msgid "cs_create_connection setpgid failed"
+msgstr "cs_create_connection setpgid fallita"
+
 msgid "cs_create_connection exec failed"
 msgstr "cs_create_connection exec fallita"
 
@@ -2585,6 +2622,9 @@
 msgid "string cannot contain newlines"
 msgstr "la stringa non può contenere caratteri 'A CAPO'"
 
+msgid "error converting Scheme values to Vim"
+msgstr "errore nel convertire i valori Scheme a Vim"
+
 msgid "Vim error: ~a"
 msgstr "Errore Vim: ~a"
 
@@ -2619,55 +2659,12 @@
 msgid "E659: Cannot invoke Python recursively"
 msgstr "E659: Python non può essere chiamato ricorsivamente"
 
-msgid "can't delete OutputObject attributes"
-msgstr "non riesco a cancellare gli attributi OutputObject"
-
-msgid "softspace must be an integer"
-msgstr "softspace deve essere un numero intero"
-
-msgid "invalid attribute"
-msgstr "attributo non valido"
-
-msgid "attempt to refer to deleted buffer"
-msgstr "tentativo di referenza a buffer cancellato"
-
 msgid "line number out of range"
 msgstr "numero linea non nell'intervallo"
 
-#, c-format
-msgid "<buffer object (deleted) at %p>"
-msgstr "<buffer oggetto (cancellato) a %p>"
-
 msgid "invalid mark name"
 msgstr "nome di mark non valido"
 
-msgid "no such buffer"
-msgstr "buffer inesistente"
-
-msgid "attempt to refer to deleted window"
-msgstr "tentativo di referenza a una finestra cancellata"
-
-msgid "readonly attribute"
-msgstr "attributo 'readonly'"
-
-msgid "cursor position outside buffer"
-msgstr "posizione cursore fuori dal buffer"
-
-#, c-format
-msgid "<window object (deleted) at %p>"
-msgstr "<finestra oggetto (cancellata) a %p>"
-
-#, c-format
-msgid "<window object (unknown) at %p>"
-msgstr "<finestra oggetto (sconosciuta) a %p>"
-
-#, c-format
-msgid "<window %d>"
-msgstr "<finestra %d>"
-
-msgid "no such window"
-msgstr "finestra inesistente"
-
 msgid "E265: $_ must be an instance of String"
 msgstr "E265: $_ deve essere un'istanza di String"
 
@@ -2839,7 +2836,7 @@
 
 msgid "cannot register callback command: buffer/window reference not found"
 msgstr ""
-"non posso registrare comando callback: referenza a buffer/finestra "
+"non posso registrare comando callback: riferimento a buffer/finestra "
 "inesistente"
 
 msgid ""
@@ -2848,12 +2845,6 @@
 "E571: Spiacente, comando non disponibile, non riesco a caricare libreria "
 "programmi Tcl."
 
-msgid ""
-"E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"
-msgstr ""
-"E281: ERRORE TCL: codice di ritorno non int!? Si prega notificare a vim-"
-"dev@vim.org"
-
 #, c-format
 msgid "E572: exit code %d"
 msgstr "E572: codice di uscita %d"
@@ -3009,6 +3000,9 @@
 msgid "-e\t\t\tEx mode (like \"ex\")"
 msgstr "-e\t\t\tModalità Ex (come \"ex\")"
 
+msgid "-E\t\t\tImproved Ex mode"
+msgstr "-E\t\t\tModalità Ex migliorata"
+
 msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")"
 msgstr "-s\t\t\tModalità Silenziosa (batch) (solo per \"ex\")"
 
@@ -3245,19 +3239,6 @@
 
 msgid ""
 "\n"
-"Arguments recognised by gvim (RISC OS version):\n"
-msgstr ""
-"\n"
-"Argomenti accettati da gvim (versione RISC OS):\n"
-
-msgid "--columns <number>\tInitial width of window in columns"
-msgstr "--columns <numero>\tLarghezza iniziale finestra in colonne"
-
-msgid "--rows <number>\tInitial height of window in rows"
-msgstr "--rows <numero>\tAltezza iniziale finestra in righe"
-
-msgid ""
-"\n"
 "Arguments recognised by gvim (GTK+ version):\n"
 msgstr ""
 "\n"
@@ -3274,6 +3255,9 @@
 msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
 msgstr "--socketid <xid>\tApri Vim dentro un altro widget GTK"
 
+msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout"
+msgstr "--echo-wid\t\tStampa il Window ID su stdout"
+
 msgid "-P <parent title>\tOpen Vim inside parent application"
 msgstr "-P <titolo padre>\tApri Vim in un'applicazione padre"
 
@@ -3332,7 +3316,6 @@
 "\n"
 "modif linea  col testo"
 
-#, c-format
 msgid ""
 "\n"
 "# File marks:\n"
@@ -3341,7 +3324,6 @@
 "# File mark:\n"
 
 #. Write the jumplist with -'
-#, c-format
 msgid ""
 "\n"
 "# Jumplist (newest first):\n"
@@ -3349,7 +3331,6 @@
 "\n"
 "# Jumplist (dai più recenti):\n"
 
-#, c-format
 msgid ""
 "\n"
 "# History of marks within files (newest to oldest):\n"
@@ -4072,6 +4053,9 @@
 msgid "Keys don't match!"
 msgstr "Le chiavi non corrispondono!"
 
+msgid "E854: path too long for completion"
+msgstr "E854: percorso troppo lungo per il completamento"
+
 #, c-format
 msgid ""
 "E343: Invalid path: '**[number]' must be at the end of the path or be "
@@ -4120,8 +4104,9 @@
 msgid "E511: netbeans already connected"
 msgstr "E511: netbeans già connesso"
 
-msgid "E505: "
-msgstr "E505: "
+#, c-format
+msgid "E505: %s is read-only (add ! to override)"
+msgstr "E505: %s è in sola lettura (aggiungi ! per eseguire comunque)"
 
 msgid "E349: No identifier under cursor"
 msgstr "E349: Nessun identificativo sotto il cursore"
@@ -4285,6 +4270,9 @@
 msgid "E520: Not allowed in a modeline"
 msgstr "E520: Non consentito in una 'modeline'"
 
+msgid "E846: Key code not set"
+msgstr "E846: Key code non impostato"
+
 msgid "E521: Number required after ="
 msgstr "E521: Ci vuole un numero dopo ="
 
@@ -4731,6 +4719,33 @@
 msgid "E777: String or List expected"
 msgstr "E777: aspettavo Stringa o Lista"
 
+#, c-format
+msgid "E769: Missing ] after %s["
+msgstr "E769: Manca ] dopo %s["
+
+msgid "E53: Unmatched %s%%("
+msgstr "E53: Senza riscontro: %s%%("
+
+#, c-format
+msgid "E54: Unmatched %s("
+msgstr "E54: Senza riscontro: %s("
+
+#, c-format
+msgid "E55: Unmatched %s)"
+msgstr "E55: Senza riscontro: %s)"
+
+msgid "E66: \\z( not allowed here"
+msgstr "E66: \\z( non consentito qui"
+
+msgid "E67: \\z1 et al. not allowed here"
+msgstr "E67: \\z1 ecc. non consentiti qui"
+
+msgid "E69: Missing ] after %s%%["
+msgstr "E69: Manca ] dopo %s%%["
+
+msgid "E70: Empty %s%%[]"
+msgstr "E70: %s%%[] vuoto"
+
 msgid "E339: Pattern too long"
 msgstr "E339: Espressione troppo lunga"
 
@@ -4744,17 +4759,6 @@
 msgid "E52: Unmatched \\z("
 msgstr "E52: Senza riscontro: \\z("
 
-msgid "E53: Unmatched %s%%("
-msgstr "E53: Senza riscontro: %s%%("
-
-#, c-format
-msgid "E54: Unmatched %s("
-msgstr "E54: Senza riscontro: %s("
-
-#, c-format
-msgid "E55: Unmatched %s)"
-msgstr "E55: Senza riscontro: %s)"
-
 #, c-format
 msgid "E59: invalid character after %s@"
 msgstr "E59: Carattere non ammesso dopo %s@"
@@ -4781,21 +4785,9 @@
 msgid "E65: Illegal back reference"
 msgstr "E65: Riferimento all'indietro non ammesso"
 
-msgid "E66: \\z( not allowed here"
-msgstr "E66: \\z( non consentito qui"
-
-msgid "E67: \\z1 et al. not allowed here"
-msgstr "E67: \\z1 ecc. non consentiti qui"
-
 msgid "E68: Invalid character after \\z"
 msgstr "E68: Carattere non ammesso dopo \\z"
 
-msgid "E69: Missing ] after %s%%["
-msgstr "E69: Manca ] dopo %s%%["
-
-msgid "E70: Empty %s%%[]"
-msgstr "E70: %s%%[] vuoto"
-
 msgid "E678: Invalid character after %s%%[dxouU]"
 msgstr "E678: Carattere non valido dopo %s%%[dxouU]"
 
@@ -4803,16 +4795,84 @@
 msgstr "E71: Carattere non ammesso dopo %s%%"
 
 #, c-format
-msgid "E769: Missing ] after %s["
-msgstr "E769: Manca ] dopo %s["
-
-#, c-format
 msgid "E554: Syntax error in %s{...}"
 msgstr "E554: Errore sintattico in %s{...}"
 
 msgid "External submatches:\n"
 msgstr "Sotto-corrispondenze esterne:\n"
 
+msgid ""
+"E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be "
+"used "
+msgstr ""
+"E864: \\%#= può essere seguito solo da 0, 1 o 2. Sarà usato il motore automatico "
+
+#, c-format
+msgid "E866: (NFA regexp) Misplaced %c"
+msgstr "E866: (NFA regexp) %c fuori posto"
+
+msgid "E865: (NFA) Regexp end encountered prematurely"
+msgstr "E865: (NFA) Fine prematura dell'espressione regolare"
+
+#, c-format
+msgid "E867: (NFA) Unknown operator '\\z%c'"
+msgstr "E867: (NFA) Operatore sconosciuto '\\z%c'"
+
+msgid "E867: (NFA) Unknown operator '\\%%%c'"
+msgstr "E867: (NFA) Operatore sconosciuto '\\%%%c'"
+
+#. should never happen
+msgid "E868: Error building NFA with equivalence class!"
+msgstr "E868: Errore nel build di NFA con classe di equivalenza!"
+
+#, c-format
+msgid "E869: (NFA) Unknown operator '\\@%c'"
+msgstr "E869: (NFA) Operatore sconosciuto '\\@%c'"
+
+msgid "E870: (NFA regexp) Error reading repetition limits"
+msgstr "E870: (NFA regexp) Errore nella lettura dei limiti di ripetizione"
+
+#. Can't have a multi follow a multi.
+msgid "E871: (NFA regexp) Can't have a multi follow a multi !"
+msgstr "E871: (NFA regexp) Non si può avere multi dopo multi !"
+
+#. Too many `('
+msgid "E872: (NFA regexp) Too many '('"
+msgstr "E872: (NFA regexp) Troppi '('"
+
+msgid "E879: (NFA regexp) Too many \\z("
+msgstr "E879: (NFA regexp) Troppi \\z("
+
+msgid "E873: (NFA regexp) proper termination error"
+msgstr "E873: (NFA regexp) errore di terminazione corretta"
+
+msgid "E874: (NFA) Could not pop the stack !"
+msgstr "E874: (NFA) Impossibile riprendere lo stack !"
+
+msgid ""
+"E875: (NFA regexp) (While converting from postfix to NFA), too many states "
+"left on stack"
+msgstr "E875: (NFA regexp) (Nella conversione da postfix a NFA), "
+"troppi stati lasciati sullo stack"
+
+msgid "E876: (NFA regexp) Not enough space to store the whole NFA "
+msgstr "E876: (NFA regexp) Non c'è spazio per immagazzinare l'intero NFA "
+
+msgid "E878: (NFA) Could not allocate memory for branch traversal!"
+msgstr "E878: (NFA) Non posso allocare memoria per il zigzag di ramo!"
+
+msgid ""
+"Could not open temporary log file for writing, displaying on stderr ... "
+msgstr ""
+"Non posso aprire il file temporaneo per la scrittura, mostro su stderr ... "
+
+#, c-format
+msgid "(NFA) COULD NOT OPEN %s !"
+msgstr "(NFA) IMPOSSIBILE APRIRE %s !"
+
+msgid "Could not open temporary log file for writing "
+msgstr "Non posso aprire il log temporaneo in scrittura "
+
 msgid " VREPLACE"
 msgstr " V-SOSTITUISCI"
 
@@ -5195,7 +5255,6 @@
 msgid "E845: Insufficient memory, word list will be incomplete"
 msgstr "E845: Memoria insufficiente, la lista parole sarà incompleta"
 
-#, c-format
 msgid "Compressed %d of %d nodes; %d (%d%%) remaining"
 msgstr "%d di %d nodi compressi; ne restano %d (%d%%)"
 
@@ -5309,6 +5368,9 @@
 msgid "E783: duplicate char in MAP entry"
 msgstr "E783: carattere duplicato nell'elemento MAP"
 
+msgid "No Syntax items defined for this buffer"
+msgstr "Nessun elemento sintattico definito per questo buffer"
+
 #, c-format
 msgid "E390: Illegal argument: %s"
 msgstr "E390: Argomento non ammesso: %s"
@@ -5317,9 +5379,6 @@
 msgid "E391: No such syntax cluster: %s"
 msgstr "E391: 'cluster' sintattico inesistente: %s"
 
-msgid "No Syntax items defined for this buffer"
-msgstr "Nessun elemento sintattico definito per questo buffer"
-
 msgid "syncing on C-style comments"
 msgstr "sincronizzo i commenti nello stile C"
 
@@ -5385,6 +5444,9 @@
 msgid "E397: Filename required"
 msgstr "E397: Nome file necessario"
 
+msgid "E847: Too many syntax includes"
+msgstr "E847: Troppe inclusioni di sintassi"
+
 #, c-format
 msgid "E789: Missing ']': %s"
 msgstr "E789: Manca ']': %s"
@@ -5397,6 +5459,9 @@
 msgid "E399: Not enough arguments: syntax region %s"
 msgstr "E399: Argomenti non sufficienti per: 'syntax region' %s"
 
+msgid "E848: Too many syntax clusters"
+msgstr "E848: Troppi 'cluster' sintattici"
+
 msgid "E400: No cluster specified"
 msgstr "E400: Nessun 'cluster' specificato"
 
@@ -5440,6 +5505,11 @@
 msgid "E410: Invalid :syntax subcommand: %s"
 msgstr "E410: Sotto-comando :syntax non valido: %s"
 
+msgid ""
+"  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN"
+msgstr ""
+"  TOTALE     CONT.  CORRIS. PIU LENTO   MEDIA     NOME               MODELLO"
+
 msgid "E679: recursive loop loading syncolor.vim"
 msgstr "E679: ciclo ricorsivo nel caricamento di syncolor.vim"
 
@@ -5501,6 +5571,9 @@
 msgid "W18: Invalid character in group name"
 msgstr "W18: Carattere non ammesso in un nome di gruppo"
 
+msgid "E849: Too many highlight and syntax groups"
+msgstr "E849: Troppi gruppi di evidenziazione e sintassi"
+
 msgid "E555: at bottom of tag stack"
 msgstr "E555: al fondo dello stack dei tag"
 
@@ -5561,6 +5634,9 @@
 msgid "E430: Tag file path truncated for %s\n"
 msgstr "E430: Percorso tag file troncato per %s\n"
 
+msgid "Ignoring long line in tags file"
+msgstr "Linea lunga ignorata nel tag file"
+
 #, c-format
 msgid "E431: Format error in tags file \"%s\""
 msgstr "E431: Errore di formato nel tag file \"%s\""
@@ -5577,9 +5653,6 @@
 msgid "E433: No tags file"
 msgstr "E433: Nessun tag file"
 
-msgid "Ignoring long line in tags file"
-msgstr "Linea lunga ignorata nel tag file"
-
 msgid "E434: Can't find tag pattern"
 msgstr "E434: Non riesco a trovare modello tag"
 
@@ -5853,13 +5926,6 @@
 
 msgid ""
 "\n"
-"RISC OS version"
-msgstr ""
-"\n"
-"Versione RISC OS"
-
-msgid ""
-"\n"
 "OpenVMS version"
 msgstr ""
 "\n"
@@ -6499,6 +6565,9 @@
 msgid "E764: Option '%s' is not set"
 msgstr "E764: opzione '%s' non impostata"
 
+msgid "E850: Invalid register name"
+msgstr "E850: Nome registro non valido"
+
 msgid "search hit TOP, continuing at BOTTOM"
 msgstr "raggiunta la CIMA nella ricerca, continuo dal FONDO"
 
@@ -6509,8 +6578,226 @@
 msgid "Need encryption key for \"%s\""
 msgstr "Serve una chiave di cifratura per \"%s\""
 
-msgid "writelines() requires list of strings"
-msgstr "writelines() richiede una lista di stringhe"
+#, c-format
+msgid "expected str() or unicode() instance, but got %s"
+msgstr "attesa istanza di str() o unicode(), trovato invece %s"
+
+#, c-format
+msgid "expected bytes() or str() instance, but got %s"
+msgstr "attesa istanza di bytes() o str(), trovato invece %s"
+
+#, c-format
+msgid ""
+"expected int(), long() or something supporting coercing to long(), but got %s"
+msgstr ""
+"atteso int(), long() o qualcosa che supporti forzatura a long(), trovato invece %s"
+
+#, c-format
+msgid "expected int() or something supporting coercing to int(), but got %s"
+msgstr "atteso int() o qualcosa che supporti forzatura a int(), trovato invece %s"
+
+msgid "value is too large to fit into C int type"
+msgstr "valore troppo grande per il tipo int del C"
+
+msgid "value is too small to fit into C int type"
+msgstr "valore troppo piccolo per il tipo int del C"
+
+msgid "number must be greater then zero"
+msgstr "il numero dev'essere maggiore di zero"
+
+msgid "number must be greater or equal to zero"
+msgstr "il numero dev'essere maggiore o uguale a zero"
+
+msgid "can't delete OutputObject attributes"
+msgstr "non riesco a cancellare gli attributi OutputObject"
+
+#, c-format
+msgid "invalid attribute: %s"
+msgstr "attributo non valido: %s"
 
 msgid "E264: Python: Error initialising I/O objects"
 msgstr "E264: Python: Errore di inizializzazione oggetti I/O"
+
+msgid "failed to change directory"
+msgstr "cambio directory non riuscito"
+
+#, c-format
+msgid "expected 3-tuple as imp.find_module() result, but got %s"
+msgstr "atteso terzetto come risultato di imp.find_module(), trovato invece %s"
+
+#, c-format
+msgid "expected 3-tuple as imp.find_module() result, but got tuple of size %d"
+msgstr "atteso terzetto come risultato di imp.find_module(), trovato invece tuple di dimens. %d"
+
+msgid "internal error: imp.find_module returned tuple with NULL"
+msgstr "errore interno: imp.find_module restituisce tuple con NULL"
+
+msgid "cannot delete vim.Dictionary attributes"
+msgstr "non riesco a cancellare gli attributi vim.Dictionary"
+
+msgid "cannot modify fixed dictionary"
+msgstr "non posso modificare il dizionario fisso"
+
+#, c-format
+msgid "cannot set attribute %s"
+msgstr "non posso impostare attributo %s"
+
+msgid "hashtab changed during iteration"
+msgstr "hashtab cambiato durante l'iterazione"
+
+#, c-format
+msgid "expected sequence element of size 2, but got sequence of size %d"
+msgstr "atteso elemento sequenza di dimensione 2, trovata sequenza di dimensione %d"
+
+msgid "list constructor does not accept keyword arguments"
+msgstr "il costruttore di lista non accetta parole chiave come argomenti"
+
+msgid "list index out of range"
+msgstr "indice di lista non nell'intervallo"
+
+#. No more suitable format specifications in python-2.3
+#, c-format
+msgid "internal error: failed to get vim list item %d"
+msgstr "errore interno: non ho potuto ottenere l'elemento di vim list %d"
+
+msgid "failed to add item to list"
+msgstr "non ho potuto aggiungere un elemento alla lista"
+
+#, c-format
+msgid "internal error: no vim list item %d"
+msgstr "errore interno: non c'è un elemento di vim list %d"
+
+msgid "internal error: failed to add item to list"
+msgstr "errore interno: non ho potuto aggiungere un elemento alla lista"
+
+msgid "cannot delete vim.List attributes"
+msgstr "non riesco a cancellare gli attributi vim.List"
+
+msgid "cannot modify fixed list"
+msgstr "non posso modificare la lista fissa"
+
+#, c-format
+msgid "unnamed function %s does not exist"
+msgstr "la funzione anonima %s non esiste"
+
+#, c-format
+msgid "function %s does not exist"
+msgstr "la funzione %s non esiste"
+
+msgid "function constructor does not accept keyword arguments"
+msgstr "il costruttore di funzione non accetta parole chiave come argomenti"
+
+#, c-format
+msgid "failed to run function %s"
+msgstr "esecuzione non riuscita della funzione %s"
+
+msgid "unable to get option value"
+msgstr "impossibile ottenere il valore di opzione"
+
+msgid "internal error: unknown option type"
+msgstr "errore interno: tipo di opzione sconosciuto"
+
+msgid "problem while switching windows"
+msgstr "problema nel cambio finestra"
+
+#, c-format
+msgid "unable to unset global option %s"
+msgstr "impossibile deimpostare l'opzione globale %s"
+
+#, c-format
+msgid "unable to unset option %s which does not have global value"
+msgstr "impossibile deimpostare l'opzione %s che non ha un valore globale"
+
+msgid "attempt to refer to deleted tab page"
+msgstr "tentativo di riferimento a linguetta cancellata"
+
+msgid "no such tab page"
+msgstr "linguetta inesistente"
+
+msgid "attempt to refer to deleted window"
+msgstr "tentativo di riferimento a una finestra cancellata"
+
+msgid "readonly attribute: buffer"
+msgstr "attributo in sola lettura: buffer"
+
+msgid "cursor position outside buffer"
+msgstr "posizione cursore fuori dal buffer"
+
+msgid "no such window"
+msgstr "finestra inesistente"
+
+msgid "attempt to refer to deleted buffer"
+msgstr "tentativo di riferimento a buffer cancellato"
+
+msgid "failed to rename buffer"
+msgstr "cambio nome buffer non riuscito"
+
+msgid "mark name must be a single character"
+msgstr "il nome mark dev'essere un carattere singolo"
+
+#, c-format
+msgid "expected vim.Buffer object, but got %s"
+msgstr "atteso oggetto vim.Buffer, trovato %s"
+
+#, c-format
+msgid "failed to switch to buffer %d"
+msgstr "passaggio non riuscito al buffer %d"
+
+#, c-format
+msgid "expected vim.Window object, but got %s"
+msgstr "atteso oggetto vim.Window, trovato %s"
+
+msgid "failed to find window in the current tab page"
+msgstr "non è stato possibile trovare la finestra nella pagina con linguette corrente"
+
+msgid "did not switch to the specified window"
+msgstr "passaggio alla finestra specificata non effettuato"
+
+#, c-format
+msgid "expected vim.TabPage object, but got %s"
+msgstr "atteso oggetto vim.TabPage, trovato %s"
+
+msgid "did not switch to the specified tab page"
+msgstr "passaggio alla linguetta specificata non effettuato"
+
+msgid "failed to run the code"
+msgstr "esecuzione del codice non riuscita"
+
+msgid "E858: Eval did not return a valid python object"
+msgstr "E858: Eval non ha restituito un oggetto python valido"
+
+msgid "E859: Failed to convert returned python object to vim value"
+msgstr "E859: Conversione non riuscita dell'oggetto python risultato a un valore vim"
+
+#, c-format
+msgid "unable to convert %s to vim dictionary"
+msgstr "impossibile convertire %s a dizionario vim"
+
+#, c-format
+msgid "unable to convert %s to vim structure"
+msgstr "impossibile convertire %s a struttura vim"
+
+msgid "internal error: NULL reference passed"
+msgstr "errore interno: passato riferimento NULL"
+
+msgid "internal error: invalid value type"
+msgstr "errore interno: tipo di valore non valido"
+
+msgid ""
+"Failed to set path hook: sys.path_hooks is not a list\n"
+"You should now do the following:\n"
+"- append vim.path_hook to sys.path_hooks\n"
+"- append vim.VIM_SPECIAL_PATH to sys.path\n"
+msgstr ""
+"Impostazione dell'ancora di percorso non riuscita: sys.path_hooks non è una lista\n"
+"Dovresti fare così:\n"
+"- aggiungere vim.path_hook a vim.path_hooks\n"
+"- aggiungere vim.VIM_SPECIAL_PATH a sys.path\n"
+
+msgid ""
+"Failed to set path: sys.path is not a list\n"
+"You should now append vim.VIM_SPECIAL_PATH to sys.path"
+msgstr ""
+"Impostazione di percorso non riuscita: sys.path non è una lista\n"
+"Dovresti aggiungere vim.VIM_SPECIAL_PATH a sys.path"
+
diff --git a/src/version.c b/src/version.c
index f02bf35..f063557 100644
--- a/src/version.c
+++ b/src/version.c
@@ -728,50 +728,6 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
-    22,
-/**/
-    21,
-/**/
-    20,
-/**/
-    19,
-/**/
-    18,
-/**/
-    17,
-/**/
-    16,
-/**/
-    15,
-/**/
-    14,
-/**/
-    13,
-/**/
-    12,
-/**/
-    11,
-/**/
-    10,
-/**/
-    9,
-/**/
-    8,
-/**/
-    7,
-/**/
-    6,
-/**/
-    5,
-/**/
-    4,
-/**/
-    3,
-/**/
-    2,
-/**/
-    1,
-/**/
     0
 };
 
diff --git a/src/version.h b/src/version.h
index d881c6d..173d3b0 100644
--- a/src/version.h
+++ b/src/version.h
@@ -19,13 +19,13 @@
 #define VIM_VERSION_MINOR_STR		"4"
 #define VIM_VERSION_100	    (VIM_VERSION_MAJOR * 100 + VIM_VERSION_MINOR)
 
-#define VIM_VERSION_BUILD		 279
-#define VIM_VERSION_BUILD_BCD		0x117
-#define VIM_VERSION_BUILD_STR		"279"
+#define VIM_VERSION_BUILD		 280
+#define VIM_VERSION_BUILD_BCD		0x118
+#define VIM_VERSION_BUILD_STR		"280"
 #define VIM_VERSION_PATCHLEVEL		 0
 #define VIM_VERSION_PATCHLEVEL_STR	"0"
 /* Used by MacOS port should be one of: development, alpha, beta, final */
-#define VIM_VERSION_RELEASE		beta
+#define VIM_VERSION_RELEASE		final
 
 /*
  * VIM_VERSION_NODOT is used for the runtime directory name.
@@ -33,8 +33,8 @@
  * VIM_VERSION_MEDIUM is used for the startup-screen.
  * VIM_VERSION_LONG is used for the ":version" command and "Vim -h".
  */
-#define VIM_VERSION_NODOT	"vim74b"
-#define VIM_VERSION_SHORT	"7.4b"
-#define VIM_VERSION_MEDIUM	"7.4b BETA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.4b BETA (2013 Jul 28)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.4b BETA (2013 Jul 28, compiled "
+#define VIM_VERSION_NODOT	"vim74"
+#define VIM_VERSION_SHORT	"7.4"
+#define VIM_VERSION_MEDIUM	"7.4"
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.4 (2013 Aug 10)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.4 (2013 Aug 10, compiled "
diff --git a/src/vim.def b/src/vim.def
index 773c963..a3edae9 100644
--- a/src/vim.def
+++ b/src/vim.def
@@ -1,4 +1,4 @@
 CODE PRELOAD EXECUTEONLY
 DATA MULTIPLE SHARED
-DESCRIPTION 'Vim 7.4b'
+DESCRIPTION 'Vim 7.4'
 HEAPSIZE 0,0
diff --git a/src/vim16.def b/src/vim16.def
index 2039767..c982c0f 100644
--- a/src/vim16.def
+++ b/src/vim16.def
@@ -1,5 +1,5 @@
 CODE PRELOAD EXECUTEONLY
 DATA MULTIPLE SHARED
-DESCRIPTION 'Vim 7.4b'
+DESCRIPTION 'Vim 7.4'
 STACKSIZE 16000
 HEAPSIZE 10000