diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js
index b04e1ce8073e9422a567009661dbf9b1c5e9992b..9e6cc6126bb21d5b261750dc2c53f583fedcdcb0 100644
--- a/frontend-js/src/main/js/ServerConnector.js
+++ b/frontend-js/src/main/js/ServerConnector.js
@@ -414,6 +414,12 @@ ServerConnector.deleteOverlayUrl = function(queryParams) {
   });
 };
 
+ServerConnector.deleteCommentUrl = function(queryParams) {
+  return this.getApiUrl({
+    url : this.getProjectUrl(queryParams) + "comments/" + queryParams.commentId + "/",
+  });
+};
+
 ServerConnector.getOverlaysUrl = function(queryParams, filterParams) {
   return this.getApiUrl({
     url : this.getProjectUrl(queryParams) + "overlays/",
@@ -1302,6 +1308,18 @@ ServerConnector.removeOverlay = function(params) {
   });
 };
 
+ServerConnector.removeComment = function(params) {
+  var self = this;
+  var queryParams = {
+    commentId : params.commentId
+  };
+  var filterParams = {};
+  return self.getProjectId(params.projectId).then(function(result) {
+    queryParams.projectId = result;
+    return self.sendDeleteRequest(self.deleteCommentUrl(queryParams), filterParams);
+  });
+};
+
 ServerConnector.getSuggestedQueryList = function(projectId) {
   var self = this;
   return self.getProjectId(projectId).then(function(result) {
diff --git a/frontend-js/src/main/js/gui/admin/CommentsAdminPanel.js b/frontend-js/src/main/js/gui/admin/CommentsAdminPanel.js
index 98d5ba3fc383827c6852350806375f46312423ac..c4b80659b160f963c291607a94d767a3a4ce60ef 100644
--- a/frontend-js/src/main/js/gui/admin/CommentsAdminPanel.js
+++ b/frontend-js/src/main/js/gui/admin/CommentsAdminPanel.js
@@ -61,7 +61,7 @@ CommentsAdminPanel.prototype._createGui = function() {
       title : 'Removed',
     }, {
       title : 'Pinned',
-    }, ]
+    }, ],
   });
 
   var projectsCell = Functions.createElement({
@@ -140,6 +140,15 @@ CommentsAdminPanel.prototype.onProjectChange = function() {
       data.push(self.commentToTableRow(comments[i]));
     }
     dataTable.clear().rows.add(data).draw();
+    $("[name='commentsTable']", self.getElement()).on("click", "[name='removeComment']", function() {
+      var button = this;
+      return ServerConnector.removeComment({
+        commentId : $(button).attr("data")
+      }).then(function() {
+        $(button).after("<span>YES</span>");
+        button.style.display = "none";
+      });
+    });
   });
 };
 
@@ -165,12 +174,19 @@ CommentsAdminPanel.prototype.commentToTableRow = function(comment) {
     title = comment.getTitle();
   }
 
+  var remove = null;
+  if (comment.isRemoved()) {
+    remove = "YES";
+  } else {
+    remove = "<button name='removeComment' data='" + comment.getId() + "'>REMOVE</button>";
+  }
+
   var row = [ comment.getId(), // 
   title, //
   comment.getAuthor(), // 
   comment.getEmail(), // 
   comment.getContent(), // 
-  toYesNo(comment.isRemoved()), //
+  remove, //
   toYesNo(comment.isPinned()) ];
   return row;
 }
diff --git a/frontend-js/src/test/js/ServerConnector-test.js b/frontend-js/src/test/js/ServerConnector-test.js
index 730bca8fa4bf409b466d4fc8e62d3f2e90c18eac..baefb69ed89c1356ce5f0ece3394e245a4fce6ed 100644
--- a/frontend-js/src/test/js/ServerConnector-test.js
+++ b/frontend-js/src/test/js/ServerConnector-test.js
@@ -160,6 +160,12 @@ describe('ServerConnector', function() {
     });
   });
 
+  it('removeComment', function() {
+    return ServerConnector.removeComment({
+      commentId : 4290,
+    });
+  });
+
   it('updateOverlay', function() {
     return ServerConnector.updateOverlay({
       overlayId : 17296,
diff --git a/frontend-js/testFiles/apiCalls/projects/sample/comments/4290/DELETE_token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/sample/comments/4290/DELETE_token=MOCK_TOKEN_ID&
new file mode 100644
index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b
--- /dev/null
+++ b/frontend-js/testFiles/apiCalls/projects/sample/comments/4290/DELETE_token=MOCK_TOKEN_ID&
@@ -0,0 +1 @@
+{}
\ No newline at end of file