diff --git a/frontend-js/src/main/js/gui/leftPanel/PublicationListDialog.js b/frontend-js/src/main/js/gui/leftPanel/PublicationListDialog.js
index 91eb2f95680cc5c89f6d1801cd56847eccf78383..275c840b777518b6ff13fb8338a1cfc2a1aad8ce 100644
--- a/frontend-js/src/main/js/gui/leftPanel/PublicationListDialog.js
+++ b/frontend-js/src/main/js/gui/leftPanel/PublicationListDialog.js
@@ -111,14 +111,18 @@ PublicationListDialog.prototype.show = function() {
   $(self.getElement()).dialog("open");
 
   if (!$.fn.DataTable.isDataTable(self.tableElement)) {
-    $(self.tableElement).dataTable({
-      serverSide : true,
-      ordering : false,
-      searching : false,
-      ajax : function(data, callback, settings) {
-        self._dataTableAjaxCall(data, callback, settings);
-      },
+    return new Promise(function(resolve, reject) {
+      $(self.tableElement).dataTable({
+        serverSide : true,
+        ordering : false,
+        searching : false,
+        ajax : function(data, callback, settings) {
+          resolve(self._dataTableAjaxCall(data, callback, settings));
+        },
+      });
     });
+  } else {
+    return Promise.resolve();
   }
 
 };
diff --git a/frontend-js/src/test/js/gui/leftPanel/PublicationListDialog-test.js b/frontend-js/src/test/js/gui/leftPanel/PublicationListDialog-test.js
index adcbff2422f78feb04ac0e7ebd9e074a71e5ce45..d5c94b2d23badc2cbb976979ade29fed59e25b72 100644
--- a/frontend-js/src/test/js/gui/leftPanel/PublicationListDialog-test.js
+++ b/frontend-js/src/test/js/gui/leftPanel/PublicationListDialog-test.js
@@ -32,19 +32,26 @@ describe('PublicationListDialog', function() {
   });
 
   it('_dataTableAjaxCall', function() {
+    var dialog;
+    var callbackCalled = false;
     return ServerConnector.getProject().then(function(project) {
-      var div = testDiv;
-      var dialog = new PublicationListDialog({
-        element : div,
+      dialog = new PublicationListDialog({
+        element : testDiv,
         customMap : helper.createCustomMap(project),
       });
       return dialog._dataTableAjaxCall({
         start : 0,
         length : 10
-      }, function() {
-      }, {}).then(function() {
-        dialog.destroy();
+      }, function(){
+        callbackCalled = true;
       });
+    }).then(function() {
+      assert.ok(callbackCalled);
+      dialog.destroy();
+    }).catch(function(exception) {
+      dialog.destroy();
+      logger.error(exception);
+      assert.ok(false);
     });
   });