diff -up org27/dvbspu.c src/dvbspu.c
--- org27/dvbspu.c	2005-05-07 13:13:48.000000000 +0200
+++ src/dvbspu.c	2005-06-30 11:12:53.000000000 +0200
@@ -235,9 +235,9 @@ cDvbSpuDecoder::cDvbSpuDecoder()
 
 cDvbSpuDecoder::~cDvbSpuDecoder()
 {
-    delete spubmp;
-    delete spu;
-    delete osd;
+    DELETENULL(spubmp);
+    DELETENULL(spu);
+    DELETENULL(osd);
 }
 
 void cDvbSpuDecoder::processSPU(uint32_t pts, uint8_t * buf, bool AllowedShow)
@@ -246,8 +246,7 @@ void cDvbSpuDecoder::processSPU(uint32_t
 
     DEBUG("SPU pushData: pts: %d\n", pts);
 
-    delete spubmp;
-    spubmp = NULL;
+    DELETENULL(spubmp);
     delete[]spu;
     spu = buf;
     spupts = pts;
@@ -390,16 +389,14 @@ void cDvbSpuDecoder::Draw(void)
 
 void cDvbSpuDecoder::Hide(void)
 {
-    delete osd;
-    osd = NULL;
+    DELETENULL(osd);
 }
 
 void cDvbSpuDecoder::Empty(void)
 {
     Hide();
 
-    delete spubmp;
-    spubmp = NULL;
+    DELETENULL(spubmp);
 
     delete[]spu;
     spu = NULL;
diff -up org27/skinclassic.c src/skinclassic.c
--- org27/skinclassic.c	2005-05-16 12:45:07.000000000 +0200
+++ src/skinclassic.c	2005-06-30 11:30:55.000000000 +0200
@@ -88,6 +88,7 @@ public:
 
 cSkinClassicDisplayChannel::cSkinClassicDisplayChannel(bool WithInfo)
 {
+  osd = NULL;
   int Lines = WithInfo ? 5 : 1;
   const cFont *font = cFont::GetFont(fontOsd);
   lineHeight = font->Height();
@@ -101,7 +102,7 @@ cSkinClassicDisplayChannel::cSkinClassic
 
 cSkinClassicDisplayChannel::~cSkinClassicDisplayChannel()
 {
-  delete osd;
+  DELETENULL(osd);
 }
 
 void cSkinClassicDisplayChannel::SetChannel(const cChannel *Channel, int Number)
@@ -174,6 +175,7 @@ public:
 
 cSkinClassicDisplayMenu::cSkinClassicDisplayMenu(void)
 {
+  osd = NULL;
   const cFont *font = cFont::GetFont(fontOsd);
   lineHeight = font->Height();
   x0 = 0;
@@ -200,7 +202,7 @@ cSkinClassicDisplayMenu::cSkinClassicDis
 
 cSkinClassicDisplayMenu::~cSkinClassicDisplayMenu()
 {
-  delete osd;
+  DELETENULL(osd);
 }
 
 void cSkinClassicDisplayMenu::SetScrollbar(void)
@@ -394,6 +396,7 @@ public:
 
 cSkinClassicDisplayReplay::cSkinClassicDisplayReplay(bool ModeOnly)
 {
+  osd = NULL;
   const cFont *font = cFont::GetFont(fontOsd);
   int lineHeight = font->Height();
   lastCurrentWidth = 0;
@@ -412,7 +415,7 @@ cSkinClassicDisplayReplay::cSkinClassicD
 
 cSkinClassicDisplayReplay::~cSkinClassicDisplayReplay()
 {
-  delete osd;
+  DELETENULL(osd);
 }
 
 void cSkinClassicDisplayReplay::SetTitle(const char *Title)
@@ -494,6 +497,7 @@ public:
 
 cSkinClassicDisplayVolume::cSkinClassicDisplayVolume(void)
 {
+  osd = NULL;
   const cFont *font = cFont::GetFont(fontOsd);
   int lineHeight = font->Height();
   osd = cOsdProvider::NewOsd(Setup.OSDLeft, Setup.OSDTop + Setup.OSDHeight - lineHeight);
@@ -503,7 +507,7 @@ cSkinClassicDisplayVolume::cSkinClassicD
 
 cSkinClassicDisplayVolume::~cSkinClassicDisplayVolume()
 {
-  delete osd;
+  DELETENULL(osd);
 }
 
 void cSkinClassicDisplayVolume::SetVolume(int Current, int Total, bool Mute)
@@ -548,6 +552,7 @@ public:
 
 cSkinClassicDisplayTracks::cSkinClassicDisplayTracks(const char *Title, int NumTracks, const char * const *Tracks)
 {
+  osd = NULL;
   const cFont *font = cFont::GetFont(fontOsd);
   lineHeight = font->Height();
   currentIndex = -1;
@@ -575,7 +580,7 @@ cSkinClassicDisplayTracks::cSkinClassicD
 
 cSkinClassicDisplayTracks::~cSkinClassicDisplayTracks()
 {
-  delete osd;
+  DELETENULL(osd);
 }
 
 void cSkinClassicDisplayTracks::SetItem(const char *Text, int Index, bool Current)
@@ -621,6 +626,7 @@ public:
 
 cSkinClassicDisplayMessage::cSkinClassicDisplayMessage(void)
 {
+  osd = NULL;
   const cFont *font = cFont::GetFont(fontOsd);
   int lineHeight = font->Height();
   osd = cOsdProvider::NewOsd(Setup.OSDLeft, Setup.OSDTop + Setup.OSDHeight - lineHeight);
@@ -630,7 +636,7 @@ cSkinClassicDisplayMessage::cSkinClassic
 
 cSkinClassicDisplayMessage::~cSkinClassicDisplayMessage()
 {
-  delete osd;
+  DELETENULL(osd);
 }
 
 void cSkinClassicDisplayMessage::SetMessage(eMessageType Type, const char *Text)
@@ -641,7 +647,8 @@ void cSkinClassicDisplayMessage::SetMess
 
 void cSkinClassicDisplayMessage::Flush(void)
 {
-  osd->Flush();
+  if (osd)
+	  osd->Flush();
 }
 
 // --- cSkinClassic ----------------------------------------------------------
Only in src: skinclassic.o
diff -up org27/skins.c src/skins.c
--- org27/skins.c	2005-01-14 14:07:19.000000000 +0100
+++ src/skins.c	2005-06-30 10:17:10.000000000 +0200
@@ -189,7 +191,8 @@ eKeys cSkins::Message(eMessageType Type,
         cStatus::MsgOsdClear();
         }
      else {
-        cSkinDisplay::Current()->SetMessage(Type, NULL);
+        if (cSkinDisplay::Current())
+		cSkinDisplay::Current()->SetMessage(Type, NULL);
         cStatus::MsgOsdStatusMessage(NULL);
         }
      }
