diff -ruN vdr-1.3.49/CONTRIBUTORS vdr-1.4.0/CONTRIBUTORS
--- vdr-1.3.49/CONTRIBUTORS	2006-04-28 15:02:04.000000000 +0200
+++ vdr-1.4.0/CONTRIBUTORS	2006-04-29 15:23:15.000000000 +0200
@@ -1420,6 +1420,8 @@
  for suggesting to add a warning about plugins that don't honor APIVERSION in their
  Makefile
  for providing a shorter version of the 'sed' expression for extracting APIVERSION
+ for fixing a bug in handling the "Power" key in case a recording is going on and
+ no plugin is active
 
 Sven Kreiensen <svenk@kammer.uni-hannover.de>
  for his help in keeping 'channels.conf.terr' up to date
@@ -1861,6 +1863,8 @@
 
 Tobias Grimm <listaccount@e-tobi.net>
  for suggesting to use geteuid() to check whether VDR is running as user 'root'
+ for fixing a memory leak in handling external EPG data
+ for fixing a memory leak in closing the video file during replay
 
 Helge Lenz <h.lenz@gmx.de>
  for reporting a bug in setting the 'Delta' parameter when calling the shutdown
@@ -1886,3 +1890,7 @@
 Werner Färber <w.faerber@gmx.de>
  for reporting a bug in handling the cPluginManager::Active() result when pressing
  the "Power" key
+
+Dominique Simon <d.simon@gmx.net>
+ for reporting a bug in handling the "Power" key in case a recording is going on and
+ no plugin is active
diff -ruN vdr-1.3.49/HISTORY vdr-1.4.0/HISTORY
--- vdr-1.3.49/HISTORY	2006-04-28 15:29:22.000000000 +0200
+++ vdr-1.4.0/HISTORY	2006-04-30 10:51:32.000000000 +0200
@@ -4677,3 +4677,13 @@
 - Removed the obsolete "'1' for encrypted radio channels" part from the description
   of the VPID in vdr.5 (reported by Alexander Hans).
 - Fixed tuning to the channel of a VPS timer if the device is the actual device.
+
+2006-04-30: Version 1.4.0
+
+- Fixed handling the "Power" key in case a recording is going on and no plugin
+  is active (thanks to Udo Richter; bug reported by Dominique Simon).
+- Updated the Polish OSD texts (thanks to Jaroslaw Swierczynski).
+- Fixed a memory leak in handling external EPG data (thanks to Tobias Grimm).
+- Fixed a memory leak in closing the video file during replay (thanks to Tobias Grimm).
+- Updated the Italian OSD texts (thanks to Nino Gerbino and Antonio Ospite).
+- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
diff -ruN vdr-1.3.49/config.h vdr-1.4.0/config.h
--- vdr-1.3.49/config.h	2006-04-28 14:33:13.000000000 +0200
+++ vdr-1.4.0/config.h	2006-04-29 11:24:07.000000000 +0200
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: config.h 1.254 2006/04/28 12:33:13 kls Exp $
+ * $Id: config.h 1.255 2006/04/29 09:24:07 kls Exp $
  */
 
 #ifndef __CONFIG_H
@@ -21,13 +21,13 @@
 
 // VDR's own version number:
 
-#define VDRVERSION  "1.3.49"
-#define VDRVERSNUM   10349  // Version * 10000 + Major * 100 + Minor
+#define VDRVERSION  "1.4.0"
+#define VDRVERSNUM   10400  // Version * 10000 + Major * 100 + Minor
 
 // The plugin API's version number:
 
-#define APIVERSION  "1.3.47"
-#define APIVERSNUM   10347  // Version * 10000 + Major * 100 + Minor
+#define APIVERSION  "1.4.0"
+#define APIVERSNUM   10400  // Version * 10000 + Major * 100 + Minor
 
 // When loading plugins, VDR searches them by their APIVERSION, which
 // may be smaller than VDRVERSION in case there have been no changes to
diff -ruN vdr-1.3.49/eit.c vdr-1.4.0/eit.c
--- vdr-1.3.49/eit.c	2006-04-15 16:11:52.000000000 +0200
+++ vdr-1.4.0/eit.c	2006-04-29 13:38:37.000000000 +0200
@@ -8,7 +8,7 @@
  * Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
  * Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg <marcel.wiesweg@gmx.de>.
  *
- * $Id: eit.c 1.116 2006/04/15 14:11:52 kls Exp $
+ * $Id: eit.c 1.117 2006/04/29 11:38:37 kls Exp $
  */
 
 #include "eit.h"
@@ -103,8 +103,10 @@
       cLinkChannels *LinkChannels = NULL;
       cComponents *Components = NULL;
       for (SI::Loop::Iterator it2; (d = SiEitEvent.eventDescriptors.getNext(it2)); ) {
-          if (ExternalData && d->getDescriptorTag() != SI::ComponentDescriptorTag)
+          if (ExternalData && d->getDescriptorTag() != SI::ComponentDescriptorTag) {
+             delete d;
              continue;
+             }
           switch (d->getDescriptorTag()) {
             case SI::ExtendedEventDescriptorTag: {
                  SI::ExtendedEventDescriptor *eed = (SI::ExtendedEventDescriptor *)d;
diff -ruN vdr-1.3.49/i18n.c vdr-1.4.0/i18n.c
--- vdr-1.3.49/i18n.c	2006-04-28 14:50:04.000000000 +0200
+++ vdr-1.4.0/i18n.c	2006-04-30 10:51:10.000000000 +0200
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: i18n.c 1.275 2006/04/28 12:50:04 kls Exp $
+ * $Id: i18n.c 1.279 2006/04/30 08:51:10 kls Exp $
  *
  * Translations provided by:
  *
@@ -108,7 +108,7 @@
   { "iso8859-15",
     "iso8859-15",
     "iso8859-2",
-    "iso8859-1",
+    "iso8859-15",
     "iso8859-15",
     "iso8859-1",
     "iso8859-1",
@@ -264,7 +264,7 @@
   { "Recording info",
     "Aufzeichnung",
     "Podatki o snemanju",
-    "Info Registrazione",
+    "Informazioni registrazione",
     "Opname info",
     "",// TODO
     "Infos sur l'enregistrement",
@@ -330,7 +330,7 @@
   { "Recording commands",
     "Befehle für Aufzeichnungen",
     "Ukazi za snemanje",
-    "Comandi di Registrazione",
+    "Comandi di registrazione",
     "Opname commando's",
     "",// TODO
     "Commandes d'enregistrement",
@@ -418,7 +418,7 @@
   { "Info",
     "Info",
     "Info",
-    "Info",
+    "Informazioni",
     "Info",
     "",//TODO
     "Info",
@@ -462,16 +462,16 @@
   { "This event - %s",
     "Diese Sendung - %s",
     "Ta oddaja - %s",
-    "Quest'evento - %s",
+    "Questo evento - %s",
     "",//TODO
     "",//TODO
     "Cet événement",
     "",//TODO
     "Tämä tapahtuma - %s",
-    "Den här sändningen - %s",
+    "Ta audycja - %s",
     "Este evento - %s",
     "",//TODO
-    "",//TODO
+    "Den här sändningen - %s",
     "Aceastã emisiune - %s",
     "",//TODO
     "",//TODO
@@ -484,13 +484,13 @@
   { "This event - all channels",
     "Diese Sendung - alle Kanäle",
     "Ta oddaja - vsi kanali",
-    "Quest'evento - tutti i canali",
+    "Questo evento - tutti i canali"
     "",//TODO
     "",//TODO
     "Cet événement - toutes les chaînes",
     "",//TODO
     "Tämä tapahtuma - kaikki kanavat",
-    "",//TODO
+    "Ta audycja - wszystkie kana³y",
     "Este evento - todos los canales",
     "",//TODO
     "Den här sändningen - alla kanaler",
@@ -512,7 +512,7 @@
     "Tous les événements - toutes chaînes",
     "",//TODO
     "Kaikki tapahtumat - kaikki kanavat",
-    "",//TODO
+    "Wszystkie audycje - wszystkie kana³y",
     "Todos los eventos - todos los canales",
     "",//TODO
     "Alla tillfällen - alla kanaler",
@@ -528,7 +528,7 @@
   { "What's on now?",
     "Was läuft jetzt?",
     "Kaj je na sporedu?",
-    "In programmazione",
+    "In programmazione adesso",
     "Wat is er nu?",
     "Programa actual?",
     "Programmes en cours",
@@ -727,7 +727,7 @@
   { "Button$Info",
     "Info",
     "Info",
-    "Info",
+    "Informazioni",
     "Info",
     "",//TODO
     "Info",
@@ -793,7 +793,7 @@
   { "Button$Rewind",
     "Anfang",
     "Na zaèetek",
-    "Dall'inizio",
+    "Riavvolgi",
     "Naar begin",
     "Rebobinar",
     "Retour",
@@ -1057,7 +1057,7 @@
   { "Button$Reset",
     "Rücksetzen",
     "Reset",
-    "Reset",
+    "Resetta",
     "Herstart",
     "",//TODO
     "Réinitialisation",
@@ -1124,7 +1124,7 @@
   { "Delete channel?",
     "Kanal löschen?",
     "Izbri¹i kanal?",
-    "Cancello il canale?",
+    "Cancellare il canale?",
     "Kanaal verwijderen?",
     "Apagar o canal?",
     "Supprimer la chaîne?",
@@ -1139,14 +1139,14 @@
     "Esborrar el canal?",
     "ÃÔÐÛØâì ÚÐÝÐÛ?",
     "Obrisati program?",
-    "Kustutan kanali?",
+    "Kustutada kanal?",
     "Slet kanal?",
     "Smazat kanál?",
   },
   { "Delete timer?",
     "Timer löschen?",
     "Izbri¹i termin?",
-    "Cancello il timer?",
+    "Cancellare il timer?",
     "Timer verwijderen?",
     "Apagar o timer?",
     "Supprimer la programmation?",
@@ -1161,14 +1161,14 @@
     "Esborrar el temporitzador?",
     "ÃÔÐÛØâì âÐÙÜÕà?",
     "Obrisati termin?",
-    "Kustutan taimeri?",
+    "Kustutada taimer?",
     "Slet timer?",
     "Smazat èasovaè?",
   },
   { "Delete recording?",
     "Aufzeichnung löschen?",
     "Izbri¹i posnetek?",
-    "Cancello la registrazione?",
+    "Cancellare la registrazione?",
     "Opname verwijderen?",
     "Apagar a gravação?",
     "Supprimer l'enregistrement?",
@@ -1183,14 +1183,14 @@
     "Esborrar gravació?",
     "ÁâÕàÕâì ×ÐßØáì?",
     "Obrisati snimku?",
-    "Kustutan salvestuse?",
+    "Kustutada salvestus?",
     "Slet optagelse?",
     "Smazat nahrávku?",
   },
   { "Timer still recording - really delete?",
     "Timer zeichnet auf - trotzdem löschen?",
     "Snemanje po terminu - zares izbri¹i?",
-    "Timer in registrazione - cancello?",
+    "Timer in registrazione - cancellare?",
     "Timer neemt nog op - toch verwijderen?",
     "Timer activo - têm a certeza que quer apagar?",
     "Enregistrement en cours - confirmez la suppression",
@@ -1205,14 +1205,14 @@
     "Temporitzador activat - Esborrar de totes maneres?",
     "¸Ôñâ ×ÐßØáì ßÞ âÐÙÜÕàã - ÔÕÙáâÒØâÕÛìÝÞ ãÔÐÛØâì?",
     "Jo¹ snimam - zaista obrisati?",
-    "Salvestus aktiivne - kustutan?",
+    "Salvestus aktiivne - kustutada?",
     "Timerstyret optagelse i gang - slet alligevel?",
     "Probíhá nahrávání - opravdu smazat?",
   },
   { "Stop recording?",
     "Aufzeichnung beenden?",
     "Prekini snemanje?",
-    "Fermo la registrazione?",
+    "Fermare la registrazione?",
     "Opname stoppen?",
     "Parar Gravação?",
     "Arrêter l'enregistrement?",
@@ -1227,14 +1227,14 @@
     "Aturar la gravació?",
     "¿àÕÚàÐâØâì ×ÐßØáì?",
     "Zaustaviti snimanje?",
-    "Lõpetan salvestamise?",
+    "Lõpetada salvestamine?",
     "Stop optagelse?",
     "Ukonèit nahrávání?",
   },
   { "Cancel editing?",
     "Schneiden abbrechen?",
     "®elite prekiniti urejanje?",
-    "Annullo la modifica?",
+    "Annullare la modifica?",
     "Bewerken afbreken?",
     "Cancelar Modificações?",
     "Annuler les modifications?",
@@ -1249,14 +1249,14 @@
     "Cancel·lar l'edició?",
     "¿àÕàÒÐâì àÕÔÐÚâØàÞÒÐÝØÕ?",
     "Otkazati ureðivanje?",
-    "Tühistan muudatuse?",
+    "Tühistada muudatus?",
     "Afbryd redigering?",
     "Zru¹it editaci?",
   },
   { "Really restart?",
     "Wirklich neu starten?",
     "Zares ponoven zagon?",
-    "Eseguo un riavvio?",
+    "Eseguire un riavvio?",
     "Werkelijk opnieuw starten?",
     "Tem a certeza que quer reiniciar?",
     "Redémarrer?",
@@ -1278,7 +1278,7 @@
   { "restart anyway?",
     "trotzdem neu starten?",
     "zares ponoven zagon?",
-    "riavvio comunque?",
+    "riavviare comunque?",
     "toch opnieuw starten?",
     "quer mesmo reiniciar?",
     "redémarrer?",
@@ -1300,7 +1300,7 @@
   { "shut down anyway?",
     "trotzdem ausschalten?",
     "zares izklopi?",
-    "spengo comunque?",
+    "spegnere comunque?",
     "toch uitschakelen?",
     "quer mesmo desligar?",
     "confirmez l'arrêt",
@@ -1315,14 +1315,14 @@
     "Apagar de totes maneres?",
     "ÔÕÙáâÒØâÕÛìÝÞ ÒëÚÛîçØâì?",
     "svejedno iskljuèiti?",
-    "lülitan välja?",
+    "lülitada välja?",
     "sluk alligevel?",
     "pøesto vypnout?",
   },
   { "Recording - restart anyway?",
     "Aufnahme läuft - trotzdem neu starten?",
     "Snemanje - zares ponoven zagon?",
-    "In registrazione - riavvio comunque?",
+    "In registrazione - riavviare comunque?",
     "Opname loopt - toch opnieuw starten?",
     "Em gravação - quer mesmo reiniciar?",
     "Enregistrement en cours - redémarrer?",
@@ -1344,7 +1344,7 @@
   { "Recording - shut down anyway?",
     "Aufnahme läuft - trotzdem ausschalten?",
     "Snemanje - zares izklopi?",
-    "In registrazione - spengo comunque?",
+    "In registrazione - spegnere comunque?",
     "Opname loopt - toch uitschakelen?",
     "Em gravação - quer mesmo desligar?",
     "Enregistrement en cours - confirmez l'arrêt",
@@ -1359,14 +1359,14 @@
     "Gravant - Apagar de totes maneres?",
     "¸Ôñâ ×ÐßØáì - ÔÕÙáâÒØâÕÛìÝÞ ÒëÚÛîçØâì?",
     "Snimanje traje - svejedno iskljuèiti?",
-    "Salvestamine aktiivne - lülitan välja?",
+    "Salvestamine aktiivne - lülitada välja?",
     "Optagelse igang - sluk alligevel?",
     "Systém je zaneprázdnìn - pøesto vypnout?",
   },
   { "Recording in %ld minutes, shut down anyway?",
     "Aufnahme in %ld Minuten - trotzdem ausschalten?",
     "Snemanje èez %ld minut, zares izklopi?",
-    "Registrazione fra %ld minuti - spengo comunque?",
+    "Registrazione fra %ld minuti - spegnere comunque?",
     "Opname in %ld minuten - toch uitschakelen?",
     "Em gravação dentro de %ld minutos - quer mesmo desligar?",
     "Enregistrement dans %ld minutes - confirmez l'arrêt",
@@ -1381,7 +1381,7 @@
     "Hi ha una gravació en %ld minuts - Apagar de totes maneres?",
     "ÇÕàÕ× %ld ÜØÝãâ ÝÐçÝñâáï ×ÐßØáì - ÔÕÙáâÒØâÕÛìÝÞ ÒëÚÛîçØâì?",
     "Snimanje za %ld minuta - svejedno iskljuèiti?",
-    "Salvestamine algab %ld minuti pärast - lülitan välja?",
+    "Salvestamine algab %ld minuti pärast - lülitada välja?",
     "Optagelse om %ld minutter - sluk alligevel?",
     "Nahrávání zaène za %ld minut - pøesto vypnout?",
   },
@@ -1703,7 +1703,7 @@
     "Aucun cryptage",
     "",//TODO
     "vapaa",
-    "",//TODO
+    "nieszyfrowany"
     "en abierto",
     "",//TODO
     "Okodad",
@@ -1725,7 +1725,7 @@
     "Crypté",
     "",//TODO
     "salattu",
-    "",//TODO
+    "szyfrowany",
     "cifrado",
     "",//TODO
     "krypterad",
@@ -2205,7 +2205,7 @@
   { "Timer is recording!",
     "Timer zeichnet gerade auf!",
     "Snemanje po terminu!",
-    "Registrazione da un timer in corso!",
+    "Registrazione di un timer in corso!",
     "Timer is aan het opnemen!",
     "Timer a gravar!",
     "Enregistrement en cours!",
@@ -2227,7 +2227,7 @@
   { "Error while accessing recording!",
     "Fehler beim Ansprechen der Aufzeichnung!",
     "Napaka pri dostopu do posnetka!",
-    "Errore nell'accesso alla registrazione",
+    "Errore nell'accedere alla registrazione!",
     "Fout bij lezen opname!",
     "Erro ao aceder à gravação",
     "Impossible d'accèder à l'enregistrement",
@@ -2271,7 +2271,7 @@
   { "*** Invalid Channel ***",
     "*** Ungültiger Kanal ***",
     "*** Neznan kanal ***",
-    "*** CANALE NON VALIDO ***",
+    "*** Canale NON valido ***",
     "*** Ongeldig kanaal ***",
     "*** Canal Inválido! ***",
     "*** Chaîne invalide! ***",
@@ -2293,7 +2293,7 @@
   { "Upcoming VPS recording!",
     "VPS-Aufnahme beginnt in Kürze!",
     "Sledi VPS snemanje!",
-    "Registrazione VPS in esecuzione!",
+    "Registrazione VPS imminente!",
     "",//TODO
     "",//TODO
     "Enregistrement VPS commence prochaînement",
@@ -2469,7 +2469,7 @@
   { "Editing process already active!",
     "Schnitt bereits aktiv!",
     "Urejanje je ¾e aktivno!",
-    "Processo di modifica gia` attivo!",
+    "Processo di modifica gia' attivo!",
     "Bewerken is al actief!",
     "Processo de modificação já activo!",
     "Montage déjà en cours!",
@@ -2601,7 +2601,7 @@
   { "Resetting CAM...",
     "CAM wird zurückgesetzt...",
     "Resetiram CAM...",
-    "CAM reimpostato...",
+    "Reimpostazione modulo CAM...",
     "CAM wordt herstart...",
     "",//TODO
     "Réinitialisation du CAM",
@@ -2667,7 +2667,7 @@
   { "Please enter %d digits!",
     "Bitte geben Sie %d Ziffern ein!",
     "Prosim vnesite %d ¹tevilk!",
-    "Inserisci %d digits!",
+    "Inserire %d cifre!",
     "Vul %d cijfers in!",
     "",//TODO
     "Veuillez entrer %d chiffres!",
@@ -2955,7 +2955,7 @@
   { "Setup.OSD$Language",
     "Sprache",
     "Jezik",
-    "Linguaggio",
+    "Lingua",
     "Taal",
     "Linguagem",
     "Langue",
@@ -2977,7 +2977,7 @@
   { "Setup.OSD$Skin",
     "Oberfläche",
     "Preobleka",
-    "Skin",
+    "Stile interfaccia",
     "Skin",
     "",// TODO
     "Skin",
@@ -2999,7 +2999,7 @@
   { "Setup.OSD$Theme",
     "Thema",
     "Tema",
-    "Tema",
+    "Tema colori",
     "Thema",
     "",// TODO
     "Thème",
@@ -3043,7 +3043,7 @@
   { "Setup.OSD$Top",
     "Oben",
     "Zgoraj",
-    "Alto",
+    "In alto",
     "Boven",
     "",// TODO
     "Haut",
@@ -3175,7 +3175,7 @@
   { "skin dependent",
     "je nach Oberfläche",
     "odvisno od preobleke",
-    "in base allo skin",
+    "in base allo stile",
     "skin afhankelijk",
     "",// TODO
     "dépend du skin",
@@ -3241,7 +3241,7 @@
   { "Setup.OSD$Channel info time (s)",
     "Anzeigedauer für Kanalinfo (s)",
     "Èas prikaza podatka o kanalu (s)",
-    "Info orario canale (s)",
+    "Durata informazioni canale (s)",
     "Duur tonen kanaal-informatie (s)",
     "",// TODO
     "Durée affichage infos chaînes (s)",
@@ -3263,7 +3263,7 @@
   { "Setup.OSD$Info on channel switch",
     "Info beim Kanalwechsel",
     "Poka¾i naziv kanala",
-    "Mostra info al cambio canale",
+    "Mostrare informazioni al cambio canale",
     "Kanaal info tonen",
     "Mostrar info ao mudar de Canal",
     "Affichage progr. en cours",
@@ -3285,7 +3285,7 @@
   { "Setup.OSD$Timeout requested channel info",
     "Angeforderte Kanalinfo schließen",
     "Èas prikaza informacije o kanalu",
-    "Richiesta timeout info canale",
+    "Scadenza informazioni canale richieste",
     "", // TODO
     "", // TODO
     "Demande d'infos de chaîne terminée",
@@ -3307,7 +3307,7 @@
   { "Setup.OSD$Scroll pages",
     "Seitenweise scrollen",
     "Drsni meni",
-    "Scorri pagina nel menu",
+    "Scorrere per pagine",
     "Scrollen per pagina",
     "Scroll da página no menu",
     "Défilement par pages",
@@ -3329,7 +3329,7 @@
   { "Setup.OSD$Scroll wraps",
     "Rundum scrollen",
     "Iz konca skoèi na zaèetek",
-    "Scrolling testo menu OSD",
+    "Scorrere riavvolgendo",
     "Rondom scrollen",
     "",// TODO
     "Défilement rotatif",
@@ -3351,13 +3351,13 @@
   { "Setup.OSD$Menu button closes",
     "Menu-Taste schließt",
     "Meni gumb zapre meni",
-    "Bottone menu bloccato",
+    "Usare il bottone Menu per chiudere",
     "",// TODO
     "",// TODO
     "Menu bouton fermé",
     "",// TODO
     "Sulje valikkonäppäimellä",
-    "",// TODO
+    "Przycisk Menu zamyka",
     "Cerrar al pulsar botón de menú",
     "",// TODO
     "Menyknappen stänger",
@@ -3395,7 +3395,7 @@
   { "Setup.EPG$EPG scan timeout (h)",
     "Zeit bis zur EPG-Aktualisierung (h)",
     "Èas do EPG pregleda (h)",
-    "Timeout scansione EPG (ore)",
+    "Timeout scansione aggiorn. EPG (ore)",
     "EPG-scan Timeout (h)",
     "Expirou o EPG (h)",
     "Inactivité avant rech. EPG (h)",
@@ -3461,7 +3461,7 @@
   { "Setup.EPG$Set system time",
     "Systemzeit stellen",
     "Nastavi sistemski èas",
-    "Settaggio orario automatico",
+    "Settare orario automatico",
     "Systeem klok instellen",
     "Ajustar relógio do sistema",
     "Ajuster l'heure du système",
@@ -3483,7 +3483,7 @@
   { "Setup.EPG$Use time from transponder",
     "Transponder für Systemzeit",
     "Transponder za nastavitev èasa",
-    "Utilizza orario da transponder",
+    "Utilizzare orario da transponder",
     "Gebruik transponder tijd voor systeem",
     "Usar relógio do transponder",
     "Utiliser l'heure de la chaîne",
@@ -3571,7 +3571,7 @@
   { "Setup.DVB$Video display format",
     "Video-Anzeigeformat",
     "Format video prikaza",
-    "Formato display video",
+    "Formato di visualizz. video",
     "Video display formaat",
     "",//TODO
     "Format d'affichage",
@@ -3681,7 +3681,7 @@
   { "Setup.DVB$Use Dolby Digital",
     "Dolby-Digital-Ton benutzen",
     "Uporabljaj Dolby Digital",
-    "Usa Dolby Digital",
+    "Dolby Digital",
     "Dolby Digital gebruiken",
     "",//TODO
     "Utiliser le Dolby Digital",
@@ -3747,13 +3747,13 @@
   { "PIDs only",
     "nur PIDs",
     "samo PIDe",
-    "solo PIDs",
+    "solo PID",
     "",// TODO
     "",// TODO
     "PIDs uniquement",
     "",// TODO
     "vain PID:it",
-    "Tylko PID-y",
+    "tylko PID-y",
     "",// TODO
     "",// TODO
     "bara PIDs",
@@ -3769,7 +3769,7 @@
   { "names and PIDs",
     "Namen und PIDs",
     "imena in PIDe",
-    "nomi e PIDs",
+    "nomi e PID",
     "namen en PIDs",
     "",// TODO
     "noms et PIDs",
@@ -3791,7 +3791,7 @@
   { "add new channels",
     "neue Kanäle hinzufügen",
     "dodaj nove programe",
-    "aggiungere canali nuovi",
+    "nuovi canali",
     "nieuwe kanalen toevoegen",
     "",// TODO
     "ajouter chaînes",
@@ -3806,14 +3806,14 @@
     "",// TODO
     "ÝÞÒëÕ ÚÐÝÐÛë",
     "dodaj nove programe",
-    "lisa uued kanalid",
+    "uute kanalite lisamine",
     "tilf. ny kanaler",
     "pøidat nové kanály",
   },
   { "add new transponders",
     "neue Transponder hinzufügen",
     "dodaj nove oddajnike",
-    "aggiungere transponder nuovi",
+    "nuovi transponder",
     "nieuwe transponders toevoegen",
     "",// TODO
     "ajouter transpondeurs",
@@ -3828,14 +3828,14 @@
     "",// TODO
     "ÝÞÒ. âàÐÝáßÞÝÔÕàë",
     "dodaj nove transpondere", // hrv TODO transponderi == odasiljaèi?
-    "lisa uued transponderid",
+    "uute transponderite lisamine",
     "tilf. ny transp.",
     "pøidat nové transpondéry",
   },
   { "Setup.DVB$Audio languages",  // note the plural
     "Audio-Sprachen",
     "Jeziki za zvok",
-    "Lingue Audio",
+    "Lingue per l'Audio",
     "Audio talen",
     "",//TODO
     "Langues audio",
@@ -3857,7 +3857,7 @@
   { "Setup.DVB$Audio language",  // note the singular
     "Audio-Sprache",
     "Jezik za zvok",
-    "Lingua Audio",
+    "Lingua per l'Audio",
     "Audio taal",
     "",//TODO
     "Langue audio",
@@ -4143,7 +4143,7 @@
   { "Setup.Recording$Use episode name",
     "Episodenname verwenden",
     "Uporabi ime epizode",
-    "Utilizza il nome dell'episodio",
+    "Usare nome episodio",
     "Gebruik episode naam",
     "Utilizar o nome do episódio",
     "Utiliser le nom de l'épisode",
@@ -4165,7 +4165,7 @@
   { "Setup.Recording$Use VPS",
     "VPS benutzen",
     "Uporabi VPS",
-    "Utilizzare VPS",
+    "Usare VPS",
     "VPS gebruiken",
     "",// TODO
     "Utiliser le VPS",
@@ -4209,7 +4209,7 @@
   { "Setup.Recording$Mark instant recording",
     "Direktaufzeichnung markieren",
     "Oznaèi direktno snemanje",
-    "Marca la registrazione",
+    "Marcare registrazione immediata",
     "Direkte opnamen markeren",
     "Marca de gravação rápida",
     "Marquage enregistr. immédiats",
@@ -4231,7 +4231,7 @@
   { "Setup.Recording$Name instant recording",
     "Direktaufzeichnung benennen",
     "Ime za direktno snemanje",
-    "Nome registrazione istantanea",
+    "Nome registrazione immediata",
     "Naam direkt-opname",
     "Nome de gravação rápida",
     "Noms enregistr. immédiats",
@@ -4253,7 +4253,7 @@
   { "Setup.Recording$Instant rec. time (min)",
     "Dauer der Direktaufzeichnung (min)",
     "Èas direktnega snemanja (min)",
-    "Tempo registrazione istantanea (min)",
+    "Tempo registrazione immediata (min)",
     "Duur van de directe opname (min)",
     "",//TODO
     "Durée enregistr. immédiat (min)",
@@ -4341,7 +4341,7 @@
   { "Setup.Replay$Show replay mode",
     "Wiedergabestatus anzeigen",
     "Prika¾i re¾im predvajanja",
-    "Modalita' di visualizz. su replay",
+    "Mostrare modalita' riproduzione",
     "Weergave mode aangeven",
     "Mostrar modo de replay",
     "Affichage mode de lecture",
@@ -4363,7 +4363,7 @@
   { "Setup.Replay$Resume ID",
     "Wiedergabe-ID",
     "ID za predvajanje",
-    "ID Ripresa",
+    "ID di rispristino",
     "Hervattings ID",
     "Resume ID",// TODO
     "ID de reprise",
@@ -4385,7 +4385,7 @@
   { "Setup.Miscellaneous$Min. event timeout (min)",
     "Brückenzeit zwischen Timern (min)",
     "Najmanj¹i èas dogodka (min)",
-    "Periodo minimo di pausa (min)",
+    "Scadenza minima evento (min)",
     "Minimale event time-out (min)",
     "Período mínimo de pausa (min)",
     "MinEventTimeout (min)",
@@ -4407,7 +4407,7 @@
   { "Setup.Miscellaneous$Min. user inactivity (min)",
     "VDR ausschalten bei Inaktivität (min)",
     "Najmanj¹i èas neaktivnosti (min)",
-    "Periodo minimo d'inattivita' (min)",
+    "Periodo minimo di inattivita' (min)",
     "Minimum gebruikers inactiviteit (min)",
     "Período mínimo de inactividade (min)",
     "Durée minimale d'inact. (min)",
@@ -4429,7 +4429,7 @@
   { "Setup.Miscellaneous$SVDRP timeout (s)",
     "SVDRP trennen bei Inaktivität (s)",
     "SVDRP èas neaktivnosti (s)",
-    "Timeout SVDRP (s)",
+    "Scadenza SVDRP (s)",
     "SVDRP Timeout (s)",
     "Timeout SVDRP (s)",
     "Temps maxi SVDRP (s)",
@@ -4451,7 +4451,7 @@
   { "Setup.Miscellaneous$Zap timeout (s)",
     "Mindestzeit für Kanalhistorie (s)",
     "Èas ugla¹evanja (s)",
-    "Timeout Zapping",
+    "Scadenza Zapping (s)",
     "Zap timeout (s)",
     "",// TODO
     "Prise en compte chaîne (s)",
@@ -4585,7 +4585,7 @@
   { " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@",
     " aäbcdefghijklmnoöpqrstuüvwxyz0123456789-.#~,/_@",
     " abcèdefghijklmnopqrs¹tuvwxyz¾0123456789-.#~,/_@",
-    " aàbcdeéèfghiîjklmnoòpqrstuùvwxyz0123456789-.#~,/_@",
+    " aáàbcdeéèfghiìîjklmnoòpqrstuùvwxyz0123456789-.#~,/_@",
     " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@áäàïóöòúüù",
     "",// TODO
     " aàbcçdeéèêfghiîjklmnoôpqrstuùûvwxyz0123456789-.#~,/_@",
@@ -4608,7 +4608,7 @@
   { " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9",
     " 0\t-.#~,/_@1\tabcä2\tdef3\tghi4\tjkl5\tmnoö6\tpqrs7\ttuvü8\twxyz9",
     " 0\t-.#~,/_@1\tabcè2\tdef3\tghi4\tjkl5\tmno6\tpqrs¹7\ttuv8\twxyz¾9",
-    "",//TODO
+    " 0\t-.#~,/_@1\taàbc2\tdeèf3\tghiì4\tjkl5\tmnoò6\tpqrs7\ttuùv8\twxyz9",
     "",//TODO
     "",//TODO
     " 0\t-.#~,/_@1\tabcàâç2\tdeféèê3\tghiîï4\tjkl5\tmnoô6\tpqrs7\ttuvù8\twxyz9",
@@ -4631,7 +4631,7 @@
   { "Learning Remote Control Keys",
     "Fernbedienung anlernen",
     "Uèenje kod upravljalca",
-    "Apprendimento tasti unita` remota",
+    "Apprendimento tasti unita' remota",
     "Leren toetsen afstandsbediening",
     "Aprender as teclas do telecomando",
     "Apprentissage des codes de télécommande",
@@ -4668,14 +4668,14 @@
     "Fase 1: Detectant el tipus de receptor",
     "ÈÐÓ 1: ¾ßàÕÔÕÛÕÝØÕ âØßÐ ÚÞÔÐ ßãÛìâÐ",
     "Faza 1: detektiranje kôda daljinskog upravljaèa.",
-    "Aste 1: Kodeerimissüsteemi tuvastamine",
+    "Samm 1: Kodeerimissüsteemi tuvastamine",
     "Fase 1: Detekterer fjernbetjenings-kodetype",
     "Fáze 1: Detekce typu kódu",
   },
   { "Press any key on the RC unit",
     "Eine Taste auf der Fernbedienung drücken",
     "Pritisnite tipko na upravljalcu",
-    "Premere un tasto dell'unita` RC",
+    "Premere un tasto dell'unita' RC",
     "Druk op een willekeurige knop",
     "Pressione qualquer tecla do telecomando",
     "Appuyer sur une touche de la télécommande",
@@ -4756,7 +4756,7 @@
     "Fase 2: Aprenentantge de les funcions",
     "ÈÐÓ 2: ·ÐÔÐÝØÕ ÚÞÔÞÒ ÞâÔÕÛìÝëå ÚÝÞßÞÚ",
     "Faza 2: Uèenje posebnih kôdova",
-    "Aste 2: Klahvide õpetamine",
+    "Samm 2: Klahvide õpetamine",
     "Fase 2: Lær individuelle tast koder",
     "Fáze 2: Uèení konkrétního kódu kláves",
   },
@@ -4910,7 +4910,7 @@
     "Fase 3: Guardant els codis de les tecles",
     "ÈÐÓ 3: ·ÐßÞÜØÝÐÝØÕ ÚÞÔÞÒ ÚÝÞßÞÚ",
     "Faza 3: Spremanje kôdova tipki",
-    "Aste 3: Klavhikoodide salvestamine",
+    "Samm 3: Klavhikoodide salvestamine",
     "Fase 3: Gemmer tast koder",
     "Fáze 3: Ulo¾ení kódù",
   },
@@ -5182,7 +5182,7 @@
   { "Key$Info",
     "Info",
     "Info",
-    "",//TODO
+    "Informazioni",
     "Info",
     "",//TODO
     "Info",
@@ -5204,7 +5204,7 @@
   { "Key$Play",
     "Wiedergabe",
     "Predvajaj",
-    "Riproduci",
+    "Riproduzione",
     "Weergeven",
     "",// TODO
     "Lecture",
@@ -5270,7 +5270,7 @@
   { "Key$Record",
     "Aufnehmen",
     "Snemaj",
-    "Registra",
+    "Registrazione",
     "Opnemen",
     "",// TODO
     "Enregistrement",
@@ -5645,7 +5645,7 @@
   { "auto",
     "auto",
     "avtomatsko",
-    "auto",
+    "automatico",
     "auto",
     "",// TODO
     "auto",
@@ -5667,7 +5667,7 @@
   { "top",
     "oben",
     "zgoraj",
-    "limite sup.",
+    "in alto",
     "boven",
     "topo",
     "haut",
@@ -5689,7 +5689,7 @@
   { "bottom",
     "unten",
     "spodaj",
-    "limite inf.",
+    "in basso",
     "onder",
     "fundo",
     "bas",
@@ -5799,7 +5799,7 @@
   { " Stop replaying", // note the leading blank!
     " Wiedergabe beenden",
     " Prekini predvajanje",
-    " Interrompi riproduzione",
+    " Stop riproduzione",
     " Stop afspelen",
     " Parar reprodução",
     " Arrêter la lecture",
@@ -5814,14 +5814,14 @@
     " Aturar la reproducció",
     " ¿àÕÚàÐâØâì ÒÞáßàÞØ×ÒÕÔÕÝØÕ",
     " Prekini reprodukciju",
-    " Lõpeta taasesitamine",
+    " Lõpetada taasesitamine",
     " Stop afspilning",
     " Zastavit pøehrávání",
   },
   { " Stop recording ", // note the leading and trailing blanks!
     " Aufzeichnung beenden ",
     " Prekini snemanje ",
-    " Interrompi registrazione ",
+    " Stop registrazione ",
     " Stop opnemen ",
     " Parar gravação ",
     " Arrêter l'enregistrement ",
@@ -5836,14 +5836,14 @@
     " Aturar la gravació ",
     " ¿àÕÚàÐâØâì ×ÐßØáì ",
     " Prekini snimanje ",
-    " Lõpeta salvestamine ",
+    " Lõpetada salvestamine ",
     " Stop optagelse ",
     " Zastavit nahrávání ",
   },
   { " Cancel editing", // note the leading blank!
     " Schneiden abbrechen",
     " Prekini urejanje",
-    " Annulla modifiche",
+    " Annullare modifiche",
     " Bewerken afbreken",
     " Anular modificação",
     " Annuler le montage",
@@ -5858,7 +5858,7 @@
     " Cancel·lar l'edició ",
     " ¿àÕàÒÐâì ÜÞÝâÐÖ ×ÐßØáØ",
     " Prekini ureðivanje",
-    " Katkesta monteerimine",
+    " Katkestada monteerimine",
     " Afbryd redigering",
     " Zru¹it editaci",
   },
@@ -5975,7 +5975,7 @@
   { "Recording started",
     "Aufzeichnung gestartet",
     "Snemanje se je prièelo",
-    "Registrazione iniziata",
+    "Registrazione avviata",
     "",//TODO
     "",//TODO
     "Enregistrement a commencé",
@@ -6019,7 +6019,7 @@
   { "Starting EPG scan",
     "Aktualisiere EPG-Daten",
     "Prièenjam EPG-scan",
-    "Scan EPG iniziato",
+    "Inizio scansione EPG",
     "Bezig met starten EPG scan",
     "",// TODO
     "Mise à jour du guide des programmes",
@@ -6041,7 +6041,7 @@
   { "This plugin has no setup parameters!",
     "Dieses Plugin hat keine Parameter!",
     "Ta vstavek nima nastavitvenih parametrov!",
-    "Questo plugin non ha parametri di setup!",
+    "Questo plugin non ha parametri di configurazione!",
     "Deze plugin heeft geen instelparameters",
     "",// TODO
     "Ce plugin n'a pas de paramètres!",
@@ -6085,7 +6085,7 @@
   { "ST:TNG Panels",
     "ST:TNG-Konsolen",
     "ST:TNG Konsola",
-    "Pannelli ST:TNG",
+    "Consolle ST:TNG",
     "ST:TNG Consoles",
     "",// TODO
     "Consoles ST:TNG",
@@ -6107,7 +6107,7 @@
   { "No title",
     "Kein Titel",
     "Brez naziva",
-    "Nessun titolo",
+    "Senza titolo",
     "Geen titel",
     "",// TODO
     "Sans titre",
diff -ruN vdr-1.3.49/recording.c vdr-1.4.0/recording.c
--- vdr-1.3.49/recording.c	2006-04-23 12:43:06.000000000 +0200
+++ vdr-1.4.0/recording.c	2006-04-29 15:22:20.000000000 +0200
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: recording.c 1.147 2006/04/23 10:43:06 kls Exp $
+ * $Id: recording.c 1.148 2006/04/29 13:22:20 kls Exp $
  */
 
 #include "recording.h"
@@ -1436,7 +1436,7 @@
 void cFileName::Close(void)
 {
   if (file) {
-     if ((record && CloseVideoFile(file) < 0) || (!record && file->Close() < 0))
+     if (CloseVideoFile(file) < 0)
         LOG_ERROR_STR(fileName);
      file = NULL;
      }
diff -ruN vdr-1.3.49/vdr.1 vdr-1.4.0/vdr.1
--- vdr-1.3.49/vdr.1	2006-04-28 15:06:35.000000000 +0200
+++ vdr-1.4.0/vdr.1	2006-04-30 10:55:12.000000000 +0200
@@ -8,9 +8,9 @@
 .\" License as specified in the file COPYING that comes with the
 .\" vdr distribution.
 .\"
-.\" $Id: vdr.1 1.24 2006/04/28 13:06:35 kls Exp $
+.\" $Id: vdr.1 1.25 2006/04/30 08:55:12 kls Exp $
 .\"
-.TH vdr 1 "28 Apr 2006" "1.4.0" "Video Disk Recorder"
+.TH vdr 1 "30 Apr 2006" "1.4.0" "Video Disk Recorder"
 .SH NAME
 vdr - the Video Disk Recorder
 .SH SYNOPSIS
diff -ruN vdr-1.3.49/vdr.5 vdr-1.4.0/vdr.5
--- vdr-1.3.49/vdr.5	2006-04-28 15:06:54.000000000 +0200
+++ vdr-1.4.0/vdr.5	2006-04-30 10:55:16.000000000 +0200
@@ -8,9 +8,9 @@
 .\" License as specified in the file COPYING that comes with the
 .\" vdr distribution.
 .\"
-.\" $Id: vdr.5 1.58 2006/04/28 13:06:54 kls Exp $
+.\" $Id: vdr.5 1.59 2006/04/30 08:55:16 kls Exp $
 .\"
-.TH vdr 5 "28 Apr 2006" "1.4.0" "Video Disk Recorder Files"
+.TH vdr 5 "30 Apr 2006" "1.4.0" "Video Disk Recorder Files"
 .SH NAME
 vdr file formats - the Video Disk Recorder Files
 .SH DESCRIPTION
diff -ruN vdr-1.3.49/vdr.c vdr-1.4.0/vdr.c
--- vdr-1.3.49/vdr.c	2006-04-28 15:23:55.000000000 +0200
+++ vdr-1.4.0/vdr.c	2006-04-29 11:14:06.000000000 +0200
@@ -22,7 +22,7 @@
  *
  * The project's page is at http://www.cadsoft.de/vdr
  *
- * $Id: vdr.c 1.266 2006/04/28 13:23:55 kls Exp $
+ * $Id: vdr.c 1.267 2006/04/29 09:14:06 kls Exp $
  */
 
 #include <getopt.h>
@@ -970,21 +970,23 @@
                   }
                break;
           // Power off:
-          case kPower: isyslog("Power button pressed");
-                       DELETE_MENU;
-                       if (!Shutdown) {
-                          Skins.Message(mtError, tr("Can't shutdown - option '-s' not given!"));
-                          break;
-                          }
-                       if (cRecordControls::Active()) {
-                          if (Interface->Confirm(tr("Recording - shut down anyway?")))
-                             ForceShutdown = true;
-                          }
-                       if (!cPluginManager::Active(tr("shut down anyway?")))
-                          ForceShutdown = true;
-                       LastActivity = 1; // not 0, see below!
-                       UserShutdown = true;
-                       break;
+          case kPower:
+               isyslog("Power button pressed");
+               DELETE_MENU;
+               if (!Shutdown) {
+                  Skins.Message(mtError, tr("Can't shutdown - option '-s' not given!"));
+                  break;
+                  }
+               LastActivity = 1; // not 0, see below!
+               UserShutdown = true;
+               if (cRecordControls::Active()) {
+                  if (!Interface->Confirm(tr("Recording - shut down anyway?")))
+                     break;
+                  }
+               if (cPluginManager::Active(tr("shut down anyway?")))
+                  break;
+               ForceShutdown = true;
+               break;
           default: break;
           }
         Interact = Menu ? Menu : cControl::Control(); // might have been closed in the mean time
