Index: HeartbeatListener.java
===================================================================
--- HeartbeatListener.java	(revision 1183)
+++ HeartbeatListener.java	(working copy)
@@ -85,27 +85,32 @@
                     sender = new MultiCastSender();
                 else
                     sender = new TcpSender();
-
-                try {
-                    sender.init(this);
-                } catch (Exception ex) {
-                    log.error("Unable to initialize Sender: " + ex);
-                    sender = null;
-                    return;
-                }
             }
 
             /* Read busy and ready */
             if (coll == null) {
                 try {
                     coll = new CollectedInfo(host, port);
+                    this.port = coll.port;
+                    this.host = coll.host;
                 } catch (Exception ex) {
                     log.error("Unable to initialize info collection: " + ex);
                     coll = null;
                     return;
                 } 
             }
+
+            /* Start or restart sender */
             try {
+                sender.init(this);
+            } catch (Exception ex) {
+                log.error("Unable to initialize Sender: " + ex);
+                sender = null;
+                return;
+            }
+
+            /* refresh the connector information and send it */
+            try {
                 coll.refresh();
             } catch (Exception ex) {
                 log.error("Unable to collect load information: " + ex);
Index: MultiCastSender.java
===================================================================
--- MultiCastSender.java	(revision 1183)
+++ MultiCastSender.java	(working copy)
@@ -22,6 +22,7 @@
 
 import java.net.MulticastSocket;
 import java.net.InetAddress;
+import java.net.InetSocketAddress;
 import java.net.DatagramPacket;
 import java.io.UnsupportedEncodingException;
 
@@ -47,7 +48,13 @@
         if (s == null) {
             try {
                 group = InetAddress.getByName(config.getGroup());
-                s = new MulticastSocket(config.getMultiport());
+                if (config.host != null) {
+                    InetAddress addr =  InetAddress.getByName(config.host);
+                    InetSocketAddress addrs = new InetSocketAddress(addr, config.getMultiport());
+                    s = new MulticastSocket(addrs);
+                } else
+                    s = new MulticastSocket(config.getMultiport());
+          
                 s.setTimeToLive(config.getTtl());
                 s.joinGroup(group);
             } catch (Exception ex) {
