diff -Naur gst-plugins-good-0.10.3/gst/udp/gstmultiudpsink.c gst-plugins-good-0.10.3-multiudpsinkfix/gst/udp/gstmultiudpsink.c
--- gst-plugins-good-0.10.3/gst/udp/gstmultiudpsink.c	2006-05-02 18:15:49.000000000 +0200
+++ gst-plugins-good-0.10.3-multiudpsinkfix/gst/udp/gstmultiudpsink.c	2006-08-04 12:56:19.000000000 +0200
@@ -420,7 +420,6 @@
 {
   struct hostent *he;
   struct in_addr addr;
-  struct ip_mreq multi_addr;
   GstUDPClient *client;
   GTimeVal now;
 
@@ -444,14 +443,14 @@
       client->multi_addr.imr_multiaddr.s_addr = addr.s_addr;
       client->multi_addr.imr_interface.s_addr = INADDR_ANY;
 
-      client->theiraddr.sin_addr = multi_addr.imr_multiaddr;
+      client->theiraddr.sin_addr = client->multi_addr.imr_multiaddr;
 
       /* Joining the multicast group */
       /* FIXME, can we use multicast and unicast over the same
        * socket? if not, search for socket of this multicast group or
        * create a new one. */
-      setsockopt (sink->sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, &multi_addr,
-          sizeof (multi_addr));
+      setsockopt (sink->sock, IPPROTO_IP, IP_ADD_MEMBERSHIP,
+          &client->multi_addr, sizeof (client->multi_addr));
     } else {
       client->theiraddr.sin_addr = *((struct in_addr *) &addr);
     }
