diff -Nur XBMC.orig/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp XBMC/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp
--- XBMC.orig/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp	2009-03-08 17:43:02.975722171 +1100
+++ XBMC/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamRTMP.cpp	2009-03-08 17:48:31.459266447 +1100
@@ -67,6 +67,7 @@
   m_rtmp.SetPlayer(m_item.GetProperty("SWFPlayer")); 
   m_rtmp.SetPageUrl(m_item.GetProperty("PageURL")); 
   m_rtmp.SetPlayPath(m_item.GetProperty("PlayPath")); 
+  m_rtmp.SetTcUrl(m_item.GetProperty("TcUrl")); 
   m_rtmp.SetBufferMS(20000);
 
   if (!m_rtmp.Connect(strFile))
diff -Nur XBMC.orig/xbmc/lib/libRTMP/rtmp.cpp XBMC/xbmc/lib/libRTMP/rtmp.cpp
--- XBMC.orig/xbmc/lib/libRTMP/rtmp.cpp	2009-03-08 17:44:48.827255256 +1100
+++ XBMC/xbmc/lib/libRTMP/rtmp.cpp	2009-03-08 19:08:15.787386920 +1100
@@ -78,6 +78,11 @@
   m_strPlayPath = strPlayPath;
 }
 
+void CRTMP::SetTcUrl(const std::string &strTcUrl)
+{
+  m_strTcUrl = strTcUrl;
+}
+
 void CRTMP::SetBufferMS(int size)
 {
   m_nBufferMS = size;
@@ -319,9 +324,6 @@
     if( pos_slash != CStdString::npos )
       app = app.Left(pos_slash);
   }
-  CStdString tcURL;
-  url.GetURLWithoutFilename(tcURL);
-  tcURL += app;
 	
   RTMPPacket packet;
   packet.m_nChannel = 0x03;   // control channel (invoke)
@@ -337,7 +339,7 @@
   enc += EncodeString(enc, "app", app);
   enc += EncodeString(enc, "flashVer", "LNX 9,0,115,0");
   enc += EncodeString(enc, "swfUrl", m_strPlayer.c_str());
-  enc += EncodeString(enc, "tcUrl", tcURL.c_str());
+  enc += EncodeString(enc, "tcUrl", m_strTcUrl.c_str());
   enc += EncodeBoolean(enc, "fpad", false);
   enc += EncodeNumber(enc, "capabilities", 15.0);
   enc += EncodeNumber(enc, "audioCodecs", 1639.0);
diff -Nur XBMC.orig/xbmc/lib/libRTMP/rtmp.h XBMC/xbmc/lib/libRTMP/rtmp.h
--- XBMC.orig/xbmc/lib/libRTMP/rtmp.h	2009-03-08 17:44:48.827255256 +1100
+++ XBMC/xbmc/lib/libRTMP/rtmp.h	2009-03-08 17:47:25.420779991 +1100
@@ -37,6 +37,7 @@
       void SetPlayer(const std::string &strPlayer);
       void SetPageUrl(const std::string &strPageUrl);
       void SetPlayPath(const std::string &strPlayPath);
+      void SetTcUrl(const std::string &strTcUrl);
       void SetBufferMS(int size);
 
       bool Connect(const std::string &strRTMPLink);
@@ -109,6 +110,7 @@
       std::string m_strPageUrl;
       std::string m_strLink;
       std::string m_strPlayPath;
+      std::string m_strTcUrl;
 
       std::vector<std::string> m_methodCalls; //remote method calls queue
 

