diff --git a/client.py b/client.py
index 3f0a51e3c26a9b62eba44eeb1f055406239c86f7..865ef23dfeeab068ff6b275ef6c6faf1c90a9b1d 100644
--- a/client.py
+++ b/client.py
@@ -14,26 +14,28 @@ class Client(multiprocessing.Process):
 
     def run(self):
         print("Client: Up and running")
-        action = input("Client: Enter type of action ('r' to register): ")
-        if (action == "r"):
-            group = input("Client: Which group dou you want to join? ")
-            self.register("register", group)
+        
+        while True:
+            action = input("Client: Enter type of action ('r' to register): ")
+            if (action == "r"):
+                group = input("Client: Which group dou you want to join? ")
+                success = self.register("register", group)
 
-            send_thread = threading.Thread(target=self.send_message)
-            receive_thread = threading.Thread(target=self.receive_messages)
-            receive_new_server_thread = threading.Thread(target=self.receive_new_server)
+                if success == 0:
+                    continue
 
-            send_thread.start()
-            receive_thread.start()
-            receive_new_server_thread.start()
+                send_thread = threading.Thread(target=self.send_message)
+                receive_thread = threading.Thread(target=self.receive_messages)
+                receive_new_server_thread = threading.Thread(target=self.receive_new_server)
 
-            # waiting for thread to stop = prevent the programm from shutdown before thread is stopped
-            send_thread.join()
-            receive_thread.join()
+                send_thread.start()
+                receive_thread.start()
+                receive_new_server_thread.start()
 
-        else: 
-            message = input("Client: Enter message:")
-            print(message)
+                # waiting for thread to stop = prevent the programm from shutdown before thread is stopped
+                send_thread.join()
+                receive_thread.join()
+                
 
     def register(self, message_type, message_group):
         PORT = 49153
@@ -49,18 +51,25 @@ class Client(multiprocessing.Process):
         
         print('Client: Received message from server: ', data.decode('utf-8'))
 
-        # search for server ip_address in message from server
-        ip_pattern = r'\b(?:\d{1,3}\.){3}\d{1,3}\b'
-        matches = re.findall(ip_pattern, data.decode('utf-8'))
+        if data.decode('utf-8') == "Group does not exist":
+            success = 0
+        else: 
+            # search for server ip_address in message from server
+            ip_pattern = r'\b(?:\d{1,3}\.){3}\d{1,3}\b'
+            matches = re.findall(ip_pattern, data.decode('utf-8'))
+
+            # 2nd ip address in message from server is server address
+            self.registered_server_address = matches[1]
+            
+            #self.registered_server = server
+            print("Client: My server: ", self.registered_server_address)
 
-        # 2nd ip address in message from server is server address
-        self.registered_server_address = matches[1]
-        
-        #self.registered_server = server
-        print("Client: My server: ", self.registered_server_address)
+            success = 1
 
         broadcast_socket.close()
 
+        return success
+
     def send_message(self):
         PORT = 50001
 
diff --git a/server.py b/server.py
index f454c592da5eefbe7c11b79c91b465e0e384e222..b797fe19643a6ab4849f10ce4f7ee26d03976f0d 100644
--- a/server.py
+++ b/server.py
@@ -456,6 +456,7 @@ class Server(multiprocessing.Process):
        
         if group not in self.local_group_cache:
             print(self.server_id+": "+"Group "+group+" doesn't exist.")
+            self.send_negative_reply_to_client(client_addr)
     
         else:
             print(self.server_id+": "+"Group "+group+" exists")
@@ -482,6 +483,14 @@ class Server(multiprocessing.Process):
 
         return addr
     
+    def send_negative_reply_to_client(self, client_addr):
+        PORT = 1001
+        message = "Group does not exist"
+        server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+        server_socket.connect((self.server_address, PORT))
+        server_socket.sendto(str.encode(message), client_addr)
+        server_socket.close()
+    
     def send_reply_to_client(self, server_addr, client_addr):
         PORT = 1000
         message = 'Hi ' + client_addr[0] + ' this is your groupchat server: ' + server_addr