diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationMessage.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationMessage.java
index 318aceb2ee29fb7db7c3890649e4950b7484f82e..71f2fa11db7adbea4dc49b90f7f0e74b08cc8546 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationMessage.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/model/AnnotationMessage.java
@@ -3,6 +3,7 @@ package unipotsdam.gf.modules.annotation.model;
 public class AnnotationMessage {
     // variables
     private String from;
+    private String targetId;
     private AnnotationMessageType type;
     private String annotationId;
 
@@ -20,6 +21,14 @@ public class AnnotationMessage {
         this.from = from;
     }
 
+    public String getTargetId() {
+        return targetId;
+    }
+
+    public void setTargetId(String targetId) {
+        this.targetId = targetId;
+    }
+
     public AnnotationMessageType getType() {
         return type;
     }
@@ -40,6 +49,7 @@ public class AnnotationMessage {
     public String toString() {
         return "AnnotationMessage{" +
                 "from='" + from + '\'' +
+                ", targetId='" + targetId + '\'' +
                 ", type=" + type +
                 ", annotationId='" + annotationId + '\'' +
                 '}';
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/websocket/AnnotationWebSocketEndpoint.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/websocket/AnnotationWebSocketEndpoint.java
index 7ee970ab5098f91dca49ae508f7b3762fdeb77d4..29c2d3f61ebc6da8e99be59dfdff206c8e1810b0 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/websocket/AnnotationWebSocketEndpoint.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/annotation/websocket/AnnotationWebSocketEndpoint.java
@@ -29,7 +29,8 @@ public class AnnotationWebSocketEndpoint {
 
     @OnMessage
     public void onMessage(Session session, AnnotationMessage annotationMessage) throws IOException, EncodeException {
-        annotationMessage.setFrom(targets.get(session.getId()));
+        annotationMessage.setTargetId(targets.get(session.getId()));
+        annotationMessage.setFrom(session.getId());
         broadcast(annotationMessage);
 
     }
@@ -48,7 +49,9 @@ public class AnnotationWebSocketEndpoint {
         endpoints.forEach(endpoint -> {
             synchronized (endpoint) {
                 try {
-                    if (targets.get(endpoint.session.getId()).equals(annotationMessage.getFrom())) {
+                    if (targets.get(endpoint.session.getId()).equals(annotationMessage.getTargetId())
+                            && !endpoint.session.getId().equals(annotationMessage.getFrom())) {
+                        System.out.println("Send message to session" + endpoint.session.getId() + " from session " + annotationMessage.getFrom());
                         endpoint.session.getBasicRemote().sendObject(annotationMessage);
                     }
                 }
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/annotationScript.js b/gemeinsamforschen/src/main/webapp/assets/js/annotationScript.js
index 1dc1882e354e6fede09e400125cec30b378a00d4..314be7c057375ddb14dd780a720fd593508f50d2 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/annotationScript.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/annotationScript.js
@@ -166,6 +166,8 @@ $(document).ready(function() {
 
         // delte annotation from server and from list
         deleteAnnotation(id, function () {
+            // send delete request to websocket
+            send("DELETE", id);
             // remove annotation from list
             $('#' + id).closest('.listelement').remove()
             // remove highlighted text
@@ -531,6 +533,8 @@ function saveNewAnnotation(title, comment, startCharacter, endCharacter) {
 
     // send new annotation to back-end and display it in list
     createAnnotation(annotationPostRequest, function(response) {
+        // send new annotation to websocket
+        send("GET", response.id);
         // display the new annotation
         displayAnnotation(response);
 
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/annotationWebsocket.js b/gemeinsamforschen/src/main/webapp/assets/js/annotationWebsocket.js
index 6b7410de06e9ddd050e07abe2e0ea7aba1f2c2ad..331b8b2f624deb54255ab2f3fc71a7d23cffac16 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/annotationWebsocket.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/annotationWebsocket.js
@@ -9,6 +9,18 @@ function connect(targetId) {
     ws.onmessage = function (e) {
         var message = JSON.parse(e.data);
         console.log(message.from)
+
+        if (message.type === "GET") {
+            // get annotation from server
+            getAnnotation(message.annotationId, function (response) {
+                // display annotation
+                displayAnnotation(response)
+            })
+        }
+        else if (message.type === "DELETE") {
+            // remove annotation from list
+            $('#' + message.annotationId).closest('.listelement').remove()
+        }
     };
 }