diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_Controller.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_Controller.java
index 197b06e6a295d6b83d71cbb73cef39ef82d18362..91d54920a4b49f10703c7530a12ed811a4c9df98 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_Controller.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_Controller.java
@@ -37,7 +37,6 @@ public class BRE_KNO_MCC_PC2_Controller
         pc2_pc3_sender = new BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender();
         pc2_pc3_sender.setNetworkSettinigs(ipPC3, portPC3);
         pc2_pc3_sender.setKeepRunning(true);
-
         
         pc2_pc3_receiver = new BRE_KNO_MCC_PC2_PC3_UNICAST_PduReceiver();
         pc2_pc3_receiver.setNetworkSettings(2344);
@@ -58,7 +57,7 @@ public class BRE_KNO_MCC_PC2_Controller
                 if (!pc2_pc3_receiver.isAlive())
                 {
                     pc2_pc3_receiver.start();        
-                }
+                }                
             }
             
             else
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.java
index 968ca2b89c106ae535dfccc705a820f9da1fcbf6..99b946c959e2a09e17b29db8f02249fdedabb084 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.java
@@ -148,13 +148,13 @@ public class BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver extends Thread
         {
             mutex.acquire();
             temp = new ArrayList(mcastMessagesToSend);
+            mcastMessagesToSend.clear();                    
             mutex.release();
         }
         catch (InterruptedException ex)
         {
             Logger.getLogger(BRE_KNO_MCC_PC2_PC1_MCAST_PduReceiver.class.getName()).log(Level.SEVERE, null, ex);
         }
-
         return temp;
     }
 }
diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver.java b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver.java
index 27521f9bb814cb242326ae56f52d55b71253f7e0..768a954c36801182dc955b92b42d9a139c3485a8 100644
--- a/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver.java
+++ b/assignments/src/MV3500Cohort2019JulySeptember/homework2/Brennenstuhl/BRE_KNO_MCC/BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver.java
@@ -33,7 +33,6 @@ public class BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver
         }
 
         run();
-
     }
 
     public static void run()
@@ -43,9 +42,9 @@ public class BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver
 
         try
         {
-            DatagramSocket clientSocket = new DatagramSocket(portPC3);            
+            DatagramSocket clientSocket = new DatagramSocket(portPC3);
             socket = new DatagramSocket(2344);
-            
+
             while (keepRunning)
             {
                 DatagramPacket datagramPacket = new DatagramPacket(buffer, 0, buffer.length);
@@ -77,7 +76,8 @@ public class BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver
 
                     System.out.println(message);
 
-                    sendAnswer(tempPdu.getTimestamp());
+                    sendAnswerUNICASTtoPC2(tempPdu.getTimestamp());
+                    sendMCASTOver3000(tempPdu);
 
                 }
                 catch (IOException ex)
@@ -102,7 +102,7 @@ public class BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver
         keepRunning = k;
     }
 
-    static void sendAnswer(int internID)
+    static void sendAnswerUNICASTtoPC2(int internID)
     {
         //Sending via UNICAST
 
@@ -117,4 +117,51 @@ public class BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver
             Logger.getLogger(BRE_KNO_MCC_PC2_PC3_UNICAST_PduSender.class.getName()).log(Level.SEVERE, null, ex);
         }
     }
+
+    static void sendMCASTOver3000(Pdu tempPdu)
+    {
+        InetAddress localMulticastAddress = null;
+        try
+        {
+            localMulticastAddress = InetAddress.getByName("239.1.2.3");
+        }
+        catch (UnknownHostException ex)
+        {
+            Logger.getLogger(BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver.class.getName()).log(Level.SEVERE, null, ex);
+        }
+             
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        DataOutputStream dos = new DataOutputStream(baos);
+        byte[] buffer;
+
+        try
+        {
+            tempPdu.marshal(dos);
+        }
+        catch (Exception ex)
+        {
+            Logger.getLogger(BRE_KNO_MCC_PC1_MCAST_PduSender.class.getName()).log(Level.SEVERE, null, ex);
+        }
+
+        buffer = baos.toByteArray();
+        DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, 3000);
+        MulticastSocket socket;
+        try
+        {
+            socket = new MulticastSocket(3000);
+            socket.joinGroup(localMulticastAddress);
+            socket.send(packet);
+        }
+        catch (IOException ex)
+        {
+            Logger.getLogger(BRE_KNO_MCC_PC3_PC2_UNICAST_PduReceiver.class.getName()).log(Level.SEVERE, null, ex);
+        } 
+        try
+        {
+            Thread.sleep(100L);
+        }
+        catch (InterruptedException ex)
+        {
+        }
+    }
 }