diff --git a/action.php b/action.php
index 0efcba60f75ec6356735a7e9af567596d3605372..f5a0b7aed5a92fdafae16e168b46507b011da00e 100644
--- a/action.php
+++ b/action.php
@@ -401,8 +401,12 @@ if ($action === 'getCommentContent') {
 
     $content = $DB->get_field('pdfannotator_comments', 'content', ['id' => $commentid]);
 
-
-    echo json_encode($content);
+    $comment = $DB->get_record('pdfannotator_comments', ['id' => $commentid]);
+    if (pdfannotator_can_see_comment($comment, $context)) {
+        echo json_encode($comment->content);
+    } else {
+        echo json_encode("false");
+    }
 }
 
 /* * ****************************************** Hide a comment for participants ****************************************** */
@@ -483,7 +487,7 @@ if ($action === 'subscribeQuestion') {
 
     $annotatorid = $DB->get_field('pdfannotator_annotations', 'pdfannotatorid', ['id' => $annotationid], $strictness = MUST_EXIST);
 
-    $subscriptionid = pdfannotator_comment::insert_subscription($annotationid);
+    $subscriptionid = pdfannotator_comment::insert_subscription($annotationid, $context);
 
     if ($departure == 1) {
         $thisannotator = $pdfannotator->id;
diff --git a/controller.php b/controller.php
index 8695c925b9b3c870f7d6d79bd2936dd5e50bea25..4cbd5ea5ca24c11d9e30d990aee93957b7be8605 100644
--- a/controller.php
+++ b/controller.php
@@ -194,7 +194,7 @@ if ($action === 'subscribeQuestion') {
 
     $annotatorid = $DB->get_field('pdfannotator_annotations', 'pdfannotatorid', ['id' => $annotationid], $strictness = MUST_EXIST);
 
-    $subscriptionid = pdfannotator_comment::insert_subscription($annotationid);
+    $subscriptionid = pdfannotator_comment::insert_subscription($annotationid, $context);
 
     if (!empty($subscriptionid)) {
         $info = get_string('successfullySubscribed', 'pdfannotator');
diff --git a/lang/en/pdfannotator.php b/lang/en/pdfannotator.php
index 25eb1c859f3043e0a7133d3d3080a0dc7ef050c2..b9b693277fe9d4869aca6d9be823180055dba9fd 100644
--- a/lang/en/pdfannotator.php
+++ b/lang/en/pdfannotator.php
@@ -293,11 +293,14 @@ $string['pdfannotator:usetextbox'] = 'Use textbox (even if the option is disable
 $string['pdfannotator:view'] = 'View PDF Annotation';
 $string['pdfannotator:viewanswers'] = 'View answers to subscribed questions (overview page)';
 $string['pdfannotator:viewposts'] = 'View own comments (overview page)';
+$string['pdfannotator:viewprotectedcomments'] = 'See private comments';
 $string['pdfannotator:viewquestions'] = 'View open questions (overview page)';
 $string['pdfannotator:viewreports'] = 'View reported comments (overview page)';
 $string['pdfannotator:viewstatistics'] = 'View statistics page';
 $string['pdfannotator:viewteacherstatistics'] = 'See additional information on statistics page';
 $string['pdfannotator:vote'] = "Vote for an interesting question or helpful answer";
+$string['pdfannotator:writeprivatecomments'] = 'Make personal notes';
+$string['pdfannotator:writeprotectedcomments'] = 'Write private comments';
 $string['pdfannotator'] = 'Document';
 $string['pdfannotatorcolumn'] = 'Document';
 $string['pdfannotatorcontent'] = 'Files and subfolders';
diff --git a/locallib.php b/locallib.php
index bf70e9eabffd52c6f955bb22a6cd4aeb623b56ae..79ac2e5a0c714aed5e56dcc1c1784279bb233457 100644
--- a/locallib.php
+++ b/locallib.php
@@ -593,7 +593,7 @@ function pdfannotator_render_action_menu($menu) {
     return $OUTPUT->render($menu);
 }
 
-function pdfannotator_subscribe_all($annotatorid) {
+function pdfannotator_subscribe_all($annotatorid, $context) {
     global $DB;
     $sql = "SELECT id FROM {pdfannotator_annotations} "
             . "WHERE pdfannotatorid = ? AND annotationtypeid NOT IN "
@@ -601,7 +601,7 @@ function pdfannotator_subscribe_all($annotatorid) {
     $params = [$annotatorid, 'drawing', 'textbox'];
     $ids = $DB->get_fieldset_sql($sql, $params);
     foreach ($ids as $annotationid) {
-        pdfannotator_comment::insert_subscription($annotationid);
+        pdfannotator_comment::insert_subscription($annotationid, $context);
     }
 }
 
diff --git a/model/comment.class.php b/model/comment.class.php
index bb5236c568a13622176b93f9412d8073872eeeac..a24eb4d336cceb105be232fe6cdd8727fce3318f 100644
--- a/model/comment.class.php
+++ b/model/comment.class.php
@@ -94,8 +94,8 @@ class pdfannotator_comment {
                         $messageid = pdfannotator_notify_manager($recipient, $course, $cm, 'newanswer', $messagetext, $anonymous);
                     }
                 }
-            } else {
-                self::insert_subscription($annotationid);
+            } else if ($visibility != 'private') {
+                self::insert_subscription($annotationid, $context);
 
                 // Notify all users, that there is a new question.
                 $recipients = get_enrolled_users($context, 'mod/pdfannotator:recievenewquestionnotifications');
@@ -111,6 +111,9 @@ class pdfannotator_comment {
                 $messagetext->text = pdfannotator_format_notification_message_text($course, $cm, $context, get_string('modulename', 'pdfannotator'), $modulename, $question, 'newquestion');
                 $messagetext->url = $question->urltoanswer;
                 foreach ($recipients as $recipient) {
+                    if (!pdfannotator_can_see_comment($datarecord, $context) ){
+                        continue;
+                    }
                     if ($recipient->id == $USER->id) {
                         continue;
                     }
@@ -160,6 +163,7 @@ class pdfannotator_comment {
             $comment->visibility = $data->visibility;
             $comment->isquestion = $data->isquestion;
             $comment->annotationid = $annotationid;
+            $comment->annotation = $annotationid;
             if ( !pdfannotator_can_see_comment($comment, $context)) {
                 continue;
             }
@@ -460,18 +464,24 @@ class pdfannotator_comment {
      * @param type $annotationid
      * @return boolean
      */
-    public static function insert_subscription($annotationid) {
+    public static function insert_subscription($annotationid, $context) {
         global $DB, $USER;
 
         // Check if subscription already exists.
         if ($DB->record_exists('pdfannotator_subscriptions', array('annotationid' => $annotationid, 'userid' => $USER->id))) {
             return false;
         }
+        
+        $comment = $DB->get_record('pdfannotator_comments', array('annotationid' => $annotationid, 'isquestion' => '1'));
+        if (!pdfannotator_can_see_comment($comment, $context)) {
+            return false;
+        }
 
         $datarecord = new stdClass();
         $datarecord->annotationid = $annotationid;
         $datarecord->userid = $USER->id;
 
+
         $subscriptionid = $DB->insert_record('pdfannotator_subscriptions', $datarecord, $returnid = true);
         return $subscriptionid;
     }
diff --git a/shared/index.js b/shared/index.js
index 7b8edc72046fe337419e5cf08aedb9a12eba3988..b44bc2cbe37a569a88f119c459492b3eb8024e63 100644
--- a/shared/index.js
+++ b/shared/index.js
@@ -7455,12 +7455,16 @@ function read_visibility_of_checkbox(){
         if (document.querySelector('#anonymousCheckbox').checked) {
             commentVisibility = "anonymous";
             document.querySelector('#anonymousCheckbox').checked = false;
-        } else if (document.querySelector('#privateCheckbox') != null) {
+        } 
+        
+        if (document.querySelector('#privateCheckbox') != null) {
             if (document.querySelector('#privateCheckbox').checked) {
               commentVisibility = "private";
               document.querySelector('#privateCheckbox').checked = false;
             }
-        } else if (document.querySelector('#protectedCheckbox') != null) {
+        } 
+        
+        if (document.querySelector('#protectedCheckbox') != null) {
             if (document.querySelector('#protectedCheckbox').checked) {
               commentVisibility = "protected";
               document.querySelector('#protectedCheckbox').checked = false;