diff -ruNp vdr-1.7.7/config.c vdr-1.7.7-displaysize/config.c
--- vdr-1.7.7/config.c	2009-05-03 15:58:08.000000000 +0200
+++ vdr-1.7.7-displaysize/config.c	2009-05-06 09:37:31.000000000 +0200
@@ -262,6 +262,8 @@ cSetup::cSetup(void)
   UseDolbyDigital = 1;
   ChannelInfoPos = 0;
   ChannelInfoTime = 5;
+  DisplayWidth = 720;
+  DisplayHeight = 576;
   OSDLeftP = 0.08;
   OSDTopP = 0.08;
   OSDWidthP = 0.87;
@@ -447,6 +449,8 @@ bool cSetup::Parse(const char *Name, con
   else if (!strcasecmp(Name, "UseDolbyDigital"))     UseDolbyDigital    = atoi(Value);
   else if (!strcasecmp(Name, "ChannelInfoPos"))      ChannelInfoPos     = atoi(Value);
   else if (!strcasecmp(Name, "ChannelInfoTime"))     ChannelInfoTime    = atoi(Value);
+  else if (!strcasecmp(Name, "DisplayWidth"))        DisplayWidth       = atoi(Value);
+  else if (!strcasecmp(Name, "DisplayHeight"))       DisplayHeight      = atoi(Value);
   else if (!strcasecmp(Name, "OSDLeftP"))            OSDLeftP           = atof(Value);
   else if (!strcasecmp(Name, "OSDTopP"))             OSDTopP            = atof(Value);
   else if (!strcasecmp(Name, "OSDWidthP"))           OSDWidthP          = atof(Value);
@@ -537,6 +541,8 @@ bool cSetup::Save(void)
   Store("UseDolbyDigital",    UseDolbyDigital);
   Store("ChannelInfoPos",     ChannelInfoPos);
   Store("ChannelInfoTime",    ChannelInfoTime);
+  Store("DisplayWidth",       DisplayWidth);
+  Store("DisplayHeight",      DisplayHeight);
   Store("OSDLeftP",           OSDLeftP);
   Store("OSDTopP",            OSDTopP);
   Store("OSDWidthP",          OSDWidthP);
diff -ruNp vdr-1.7.7/config.h vdr-1.7.7-displaysize/config.h
--- vdr-1.7.7/config.h	2009-05-03 15:15:35.000000000 +0200
+++ vdr-1.7.7-displaysize/config.h	2009-05-06 09:37:31.000000000 +0200
@@ -244,6 +244,7 @@ public:
   int UseDolbyDigital;
   int ChannelInfoPos;
   int ChannelInfoTime;
+  int DisplayWidth, DisplayHeight;
   double OSDLeftP, OSDTopP, OSDWidthP, OSDHeightP;
   int OSDLeft, OSDTop, OSDWidth, OSDHeight;
   int OSDMessageTime;
diff -ruNp vdr-1.7.7/menu.c vdr-1.7.7-displaysize/menu.c
--- vdr-1.7.7/menu.c	2009-05-03 15:30:13.000000000 +0200
+++ vdr-1.7.7-displaysize/menu.c	2009-05-06 09:37:31.000000000 +0200
@@ -2424,6 +2424,8 @@ void cMenuSetupDVB::Setup(void)
   Add(new cMenuEditBoolItem(tr("Setup.DVB$Video format"),          &data.VideoFormat, "4:3", "16:9"));
   if (data.VideoFormat == 0)
      Add(new cMenuEditStraItem(tr("Setup.DVB$Video display format"), &data.VideoDisplayFormat, 3, videoDisplayFormatTexts));
+  Add(new cMenuEditIntItem( tr("Setup.DVB$Display width"),         &data.DisplayWidth, MINOSDWIDTH, MAXOSDWIDTH));
+  Add(new cMenuEditIntItem( tr("Setup.DVB$Display height"),        &data.DisplayHeight, MINOSDHEIGHT, MAXOSDHEIGHT));
   Add(new cMenuEditBoolItem(tr("Setup.DVB$Use Dolby Digital"),     &data.UseDolbyDigital));
   Add(new cMenuEditStraItem(tr("Setup.DVB$Update channels"),       &data.UpdateChannels, 6, updateChannelsTexts));
   Add(new cMenuEditIntItem( tr("Setup.DVB$Audio languages"),       &numAudioLanguages, 0, I18nLanguages()->Size()));
diff -ruNp vdr-1.7.7/osd.c vdr-1.7.7-displaysize/osd.c
--- vdr-1.7.7/osd.c	2009-05-03 15:52:47.000000000 +0200
+++ vdr-1.7.7-displaysize/osd.c	2009-05-06 09:37:31.000000000 +0200
@@ -921,6 +921,10 @@ void cOsdProvider::UpdateOsdSize(bool Fo
   int Height;
   eVideoAspect Aspect;
   cDevice::PrimaryDevice()->GetVideoSize(Width, Height, Aspect);
+  if (Setup.DisplayWidth > 720 || Setup.DisplayHeight > 576) {
+     Width = Setup.DisplayWidth;
+     Height = Setup.DisplayHeight;
+     }
   if (Width != oldWidth || Height != oldHeight || Aspect != oldAspect || Force) {
      Setup.OSDLeft = int(round(Width * Setup.OSDLeftP));
      Setup.OSDTop = int(round(Height * Setup.OSDTopP));
diff -ruNp vdr-1.7.7/po/de_DE.po vdr-1.7.7-displaysize/po/de_DE.po
--- vdr-1.7.7/po/de_DE.po	2009-05-03 16:15:20.000000000 +0200
+++ vdr-1.7.7-displaysize/po/de_DE.po	2009-05-06 09:37:31.000000000 +0200
@@ -623,6 +623,12 @@ msgstr "DVB"
 msgid "Setup.DVB$Primary DVB interface"
 msgstr "Primäres DVB-Interface"
 
+msgid "Setup.DVB$Display width"
+msgstr "Bildschirmbreite"
+
+msgid "Setup.DVB$Display height"
+msgstr "Bildschirmhöhe"
+
 msgid "Setup.DVB$Video format"
 msgstr "Videoformat"
 
