diff --git a/CHANGELOG b/CHANGELOG
index 035815b255c4d7d027bead88fdcbe21ed451e62d..4013acd70eb001a0a50e49cec21e94e751ed808e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -18,6 +18,8 @@ minerva (14.0.0~beta.0) unstable; urgency=low
   * Bug fix: curator couldn't update data overlay in some situations (#905)
   * Bug fix: alignment of tabs fixed for dialogs: "Add Project", "Edit Genome", 
     "Edit Project", "Edit User" (#881)
+  * Bug fix: user with modify access to the project can edit it in admin panel
+    (#901)
 
  -- Piotr Gawron <piotr.gawron@uni.lu>  Mon, 21 Aug 2019 21:00:00 +0200
 
diff --git a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js
index 64387c1093e01b623280f223f7a6622fab047b4d..488cf4e3997fff2408986c4fe36e83cd00fbc6ff 100644
--- a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js
+++ b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js
@@ -265,19 +265,28 @@ MapsAdminPanel.prototype.projectToTableRow = function (project, row, user) {
   row[4] = organism;
   row[5] = status;
 
-  var disabled = " disabled ";
+  var disabledEdit = " disabled ";
+  var disabledRemove = " disabled ";
   if ((user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.IS_ADMIN)) ||
-    user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.IS_CURATOR)))
+    user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.IS_CURATOR)) ||
+    user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.WRITE_PROJECT), project.getProjectId()))
     && (status.indexOf("Ok") === 0 || status.indexOf("Failure") === 0)) {
-    disabled = "";
+    disabledEdit = "";
   }
 
-  row[6] = "<button name='showEditDialog' data='" + project.getProjectId() + "'" + disabled + "><i class='fa fa-edit' style='font-size:17px'></i></button>";
+  if ((user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.IS_ADMIN)) ||
+    (user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.IS_CURATOR)) &&
+      user.hasPrivilege(self.getConfiguration().getPrivilegeType(PrivilegeType.WRITE_PROJECT), project.getProjectId())))
+    && (status.indexOf("Ok") === 0 || status.indexOf("Failure") === 0)) {
+    disabledRemove = "";
+  }
+
+  row[6] = "<button name='showEditDialog' data='" + project.getProjectId() + "'" + disabledEdit + "><i class='fa fa-edit' style='font-size:17px'></i></button>";
 
   if (self.getConfiguration().getOption(ConfigurationType.DEFAULT_MAP).getValue() === projectId) {
-    disabled = " disabled ";
+    disabledRemove = " disabled ";
   }
-  row[7] = "<button name='removeProject' data='" + project.getProjectId() + "'" + disabled + "><i class='fa fa-trash-o' style='font-size:17px'></button>";
+  row[7] = "<button name='removeProject' data='" + project.getProjectId() + "'" + disabledRemove + "><i class='fa fa-trash-o' style='font-size:17px'></button>";
 
   return row;
 };