diff --git a/src/live/livepatfilter.c b/src/live/livepatfilter.c
index e811c8c..f1b94fd 100644
--- a/src/live/livepatfilter.c
+++ b/src/live/livepatfilter.c
@@ -447,7 +447,7 @@ void cLivePatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Le
         }
       }
 
-      m_Streamer->m_Receiver  = new cLiveReceiver(m_Streamer, m_Channel->GetChannelID(), m_Streamer->m_Priority, m_Streamer->m_Pids);
+      m_Streamer->m_Receiver  = new cLiveReceiver(m_Streamer, m_Channel, m_Streamer->m_Priority, m_Streamer->m_Pids);
       m_Streamer->m_Device->AttachReceiver(m_Streamer->m_Receiver);
       INFOLOG("Currently unknown new streams found, requesting stream change");
       m_Streamer->RequestStreamChange();
diff --git a/src/live/livereceiver.c b/src/live/livereceiver.c
index 34f5ba8..528f65a 100644
--- a/src/live/livereceiver.c
+++ b/src/live/livereceiver.c
@@ -27,10 +27,12 @@
 #include "livereceiver.h"
 #include "livestreamer.h"
 
-cLiveReceiver::cLiveReceiver(cLiveStreamer *Streamer, tChannelID ChannelID, int Priority, const int *Pids)
- : cReceiver(ChannelID, Priority, 0, Pids)
+cLiveReceiver::cLiveReceiver(cLiveStreamer *Streamer, const cChannel *Channel, int Priority, const int *Pids)
+ : cReceiver(Channel, Priority)
  , m_Streamer(Streamer)
 {
+  AddPid(0);
+  AddPids(Pids);
   DEBUGLOG("Starting live receiver");
 }
 
diff --git a/src/live/livereceiver.h b/src/live/livereceiver.h
index 8d23522..2ccd8bf 100644
--- a/src/live/livereceiver.h
+++ b/src/live/livereceiver.h
@@ -42,7 +42,7 @@ protected:
   virtual void Receive(uchar *Data, int Length);
 
 public:
-  cLiveReceiver(cLiveStreamer *Streamer, tChannelID ChannelID, int Priority, const int *Pids);
+  cLiveReceiver(cLiveStreamer *Streamer, const cChannel *Channel, int Priority, const int *Pids);
   virtual ~cLiveReceiver();
 };
 
diff --git a/src/live/livestreamer.c b/src/live/livestreamer.c
index a2d6826..6bafc02 100644
--- a/src/live/livestreamer.c
+++ b/src/live/livestreamer.c
@@ -406,7 +406,7 @@ bool cLiveStreamer::StreamChannel(const cChannel *channel, int priority, cxSocke
   if (m_NumStreams > 0 && m_Socket)
   {
     DEBUGLOG("Creating new live Receiver");
-    m_Receiver  = new cLiveReceiver(this, m_Channel->GetChannelID(), m_Priority, m_Pids);
+    m_Receiver  = new cLiveReceiver(this, m_Channel, m_Priority, m_Pids);
     m_PatFilter = new cLivePatFilter(this, m_Channel);
     m_Device->AttachReceiver(m_Receiver);
     m_Device->AttachFilter(m_PatFilter);
diff --git a/src/xvdr/xvdrclient.c b/src/xvdr/xvdrclient.c
index cea1af2..931ea61 100644
--- a/src/xvdr/xvdrclient.c
+++ b/src/xvdr/xvdrclient.c
@@ -1572,7 +1572,7 @@ bool cXVDRClient::processRECORDINGS_GetList() /* OPCODE 102 */
       }
       else
       {
-        recordingStart = recording->start;
+        recordingStart = recording->Start();
       }
     }
     DEBUGLOG("GRI: RC: recordingStart=%lu recordingDuration=%i", recordingStart, recordingDuration);
@@ -1584,10 +1584,10 @@ bool cXVDRClient::processRECORDINGS_GetList() /* OPCODE 102 */
     m_resp->add_U32(recordingDuration);
 
     // priority
-    m_resp->add_U32(recording->priority);
+    m_resp->add_U32(recording->Priority());
 
     // lifetime
-    m_resp->add_U32(recording->lifetime);
+    m_resp->add_U32(recording->Lifetime());
 
     // channel_name
     m_resp->add_String(recording->Info()->ChannelName() ? m_toUTF8.Convert(recording->Info()->ChannelName()) : "");