diff --git a/CHANGELOG b/CHANGELOG
index 7104282e37885b8422f0ca88c8fb67aed61e5635..fe39b622484a2e2de39feedaa9f50d5e607dad94 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,8 @@ minerva (14.0.0~beta.2) unstable; urgency=low
   * Small improvement: info window contains information about overlay No (#919)
   * Small improvement: curator without write access to project has info about 
     it when editing project (#940)
+  * Small improvement: when revoking view access to project, revoke 
+    automatically write access to it (#920)
   * Bug fix: exported SBML passes online validation (#831)
   * Bug fix: changing owner of data overlay should change order index (#945)
   * Bug fix: allow user to remove own comments (#931)
diff --git a/frontend-js/src/main/js/gui/admin/EditProjectDialog.js b/frontend-js/src/main/js/gui/admin/EditProjectDialog.js
index 7e5e1fdce35d117f5ee5f02651dc90798bf97a23..3097f39e91a271833cc3ec5850b0d2ca3375f7b9 100644
--- a/frontend-js/src/main/js/gui/admin/EditProjectDialog.js
+++ b/frontend-js/src/main/js/gui/admin/EditProjectDialog.js
@@ -621,6 +621,12 @@ EditProjectDialog.prototype.createUsersTabContent = function () {
       }
       return self.grantPrivilege(self._userByLogin[login], type, self.getProject().getProjectId());
     } else {
+      if (type === PrivilegeType.READ_PROJECT) {
+        var writeCheckbox = $("[data='" + PrivilegeType.WRITE_PROJECT + "," + login + "']", usersTable);
+        if (writeCheckbox.is(":checked")) {
+          writeCheckbox.click();
+        }
+      }
       return self.revokePrivilege(self._userByLogin[login], type, self.getProject().getProjectId());
     }
   });
diff --git a/frontend-js/src/main/js/gui/admin/EditUserDialog.js b/frontend-js/src/main/js/gui/admin/EditUserDialog.js
index 50399f0b9b2a1e74c46dd94b668975a86f6e69ca..0c5d2f3c74ab41e3609e2e0d0e1dc3f968129dd8 100644
--- a/frontend-js/src/main/js/gui/admin/EditUserDialog.js
+++ b/frontend-js/src/main/js/gui/admin/EditUserDialog.js
@@ -385,36 +385,25 @@ EditUserDialog.prototype.initProjectsTab = function () {
   $(projectsTable).DataTable({
     columns: columns
   });
-  $(projectsTable).on("click", "[name='project-privilege-checkbox']", function () {
+  $(self.getElement()).on("click", "[name='project-privilege-checkbox']", function () {
     var data = $(this).attr("data").split(":");
     var type = data[0];
     var projectId = data[1];
     if ($(this).is(":checked")) {
       if (type === PrivilegeType.WRITE_PROJECT) {
-        var readCheckbox = $("[data='" + PrivilegeType.READ_PROJECT + ":" + data[1] + "']", projectsTable);
+        var readCheckbox = $("[data='" + PrivilegeType.READ_PROJECT + ":" + data[1] + "']", self.getElement());
         if (!readCheckbox.is(":checked")) {
           readCheckbox.click();
         }
       }
       return self.grantPrivilege({privilegeType: type, objectId: projectId});
     } else {
-      return self.revokePrivilege({privilegeType: type, objectId: projectId});
-    }
-  });
-
-  $("[name='defaultProjectsRow']", self.getElement()).on("click", "[name='project-privilege-checkbox']", function () {
-    var data = $(this).attr("data").split(":");
-    var type = data[0];
-    var projectId = data[1];
-    if ($(this).is(":checked")) {
-      if (type === PrivilegeType.WRITE_PROJECT) {
-        var readCheckbox = $("[data='" + PrivilegeType.READ_PROJECT + ":" + data[1] + "']", self.getElement());
-        if (!readCheckbox.is(":checked")) {
-          readCheckbox.click();
+      if (type === PrivilegeType.READ_PROJECT) {
+        var writeCheckbox = $("[data='" + PrivilegeType.WRITE_PROJECT + ":" + data[1] + "']", self.getElement());
+        if (writeCheckbox.is(":checked")) {
+          writeCheckbox.click();
         }
       }
-      return self.grantPrivilege({privilegeType: type, objectId: projectId});
-    } else {
       return self.revokePrivilege({privilegeType: type, objectId: projectId});
     }
   });