diff -ur mythtv.orig/libs/libmythlivemedia/groupsock/GroupsockHelper.cpp mythtv/libs/libmythlivemedia/groupsock/GroupsockHelper.cpp
--- mythtv.orig/libs/libmythlivemedia/groupsock/GroupsockHelper.cpp	2007-10-29 10:35:23.000000000 -0400
+++ mythtv/libs/libmythlivemedia/groupsock/GroupsockHelper.cpp	2007-10-29 10:42:42.000000000 -0400
@@ -34,6 +34,7 @@
 // By default, use INADDR_ANY for the sending and receiving interfaces:
 netAddressBits SendingInterfaceAddr = INADDR_ANY;
 netAddressBits ReceivingInterfaceAddr = INADDR_ANY;
+netAddressBits ReceivingSocketAddr = INADDR_ANY;
 
 static void socketErr(UsageEnvironment& env, char* errorMsg) {
 	env.setResultErrMsg(errorMsg);
@@ -93,7 +94,7 @@
 #else
   if (port.num() != 0 || ReceivingInterfaceAddr != INADDR_ANY) {
 #endif
-    MAKE_SOCKADDR_IN(name, ReceivingInterfaceAddr, port.num());
+    MAKE_SOCKADDR_IN(name, ReceivingSocketAddr, port.num());
     if (bind(newSocket, (struct sockaddr*)&name, sizeof name) != 0) {
       char tmpBuffer[100];
       sprintf(tmpBuffer, "bind() error (port number: %d): ",
@@ -560,6 +561,8 @@
       testAddr.s_addr = our_inet_addr("228.67.43.91"); // arbitrary
       Port testPort(15947); // ditto
       
+      ReceivingSocketAddr = INADDR_ANY;
+
       sock = setupDatagramSocket(env, testPort);
       if (sock < 0) break;
       
diff -ur mythtv.orig/libs/libmythlivemedia/groupsock/include/GroupsockHelper.hh mythtv/libs/libmythlivemedia/groupsock/include/GroupsockHelper.hh
--- mythtv.orig/libs/libmythlivemedia/groupsock/include/GroupsockHelper.hh	2007-10-29 10:35:23.000000000 -0400
+++ mythtv/libs/libmythlivemedia/groupsock/include/GroupsockHelper.hh	2007-10-29 10:40:25.000000000 -0400
@@ -79,6 +79,7 @@
 // are INADDR_ANY (i.e., 0), specifying the default interface.)
 extern netAddressBits SendingInterfaceAddr;
 extern netAddressBits ReceivingInterfaceAddr;
+extern netAddressBits ReceivingSocketAddr;
 
 // Allocates a randomly-chosen IPv4 SSM (multicast) address:
 netAddressBits chooseRandomIPv4SSMAddress(UsageEnvironment& env);
diff -ur mythtv.orig/libs/libmythtv/iptv/iptvfeederudp.cpp mythtv/libs/libmythtv/iptv/iptvfeederudp.cpp
--- mythtv.orig/libs/libmythtv/iptv/iptvfeederudp.cpp	2007-10-29 10:35:09.000000000 -0400
+++ mythtv/libs/libmythtv/iptv/iptvfeederudp.cpp	2007-10-29 10:42:00.000000000 -0400
@@ -69,6 +69,8 @@
     if (!InitEnv())
         return false;
     
+    ReceivingSocketAddr = our_inet_addr(parse.host().latin1());
+
     Groupsock *socket = new Groupsock(*_live_env, addr, parse.port(), 0);
     if (!socket)
     {
