diff --git a/src/core/js/webcaosdb.js b/src/core/js/webcaosdb.js
index 466d48d52f26da3b3a49d2614628abcd661e0061..03cc7bfbb399e898a88cb99dc0a05cc90289f96a 100644
--- a/src/core/js/webcaosdb.js
+++ b/src/core/js/webcaosdb.js
@@ -1113,17 +1113,39 @@ var version_history = new function () {
                             // the version id is stored in the restore button's
                             // data-version-id attribute
                             const versionid = eve.delegateTarget.getAttribute("data-version-id")
-                            try {
-                                await restore_old_version(versionid);
-                                // reload after sucessful update
+                            const reload = () => {
                                 window.location.reload();
-                            } catch (e) {
-                                logger.error(e);
-                                // print errors in an alert div
-                                $(version_info).find(".modal-body").prepend(
-                                    $(`<div class="alert alert-danger alert-dismissible " role="alert"> <button class="btn-close" data-bs-dismiss="alert" aria-label="close"></button> Restore failed! <p>${e.message}</p></div>`));
-
                             }
+                            const _alert = form_elements.make_alert({
+                                title: "Warning",
+                                message: "You are going to restore this version of the entity.",
+                                proceed_callback: async () => {
+                                    try {
+                                        await restore_old_version(versionid);
+                                        $(_alert).remove();
+                                        // reload after sucessful update
+                                        $(version_info).find(".modal-body").prepend(
+                                            $(`<div class="alert alert-success" role="alert">Restore successful! <p>You are being forwarded to the latest version of this entity or you can click <a href="#" onclick="window.location.reload()">here</a>.</p></div>`));
+                                        setTimeout(reload, 5000);
+                                    } catch (e) {
+                                        logger.error(e);
+                                        // print errors in an alert div
+                                        $(version_info).find(".modal-body").prepend(
+                                            $(`<div class="alert alert-danger alert-dismissible " role="alert"> <button class="btn-close" data-bs-dismiss="alert" aria-label="close"></button> Restore failed! <p>${e.message}</p></div>`));
+
+                                    }
+                                },
+                                cancel_callback: () => {
+                                    // do nothing
+                                    $(_alert).remove();
+                                    $(version_info).find("table").show();
+                                },
+                                proceed_text: "Yes, restore!",
+                                remember_my_decision_id: "restore_entity",
+                            });
+
+                            $(version_info).find("table").after(_alert).hide();
+                            $(_alert).addClass("text-end");
                         });
                 }
             }
diff --git a/test/core/js/modules/webcaosdb.js.js b/test/core/js/modules/webcaosdb.js.js
index a39ac044d9f5af96a9e381cafad9dff80620554e..5f45c32adb9d171c5d362467d0bba0840f02836f 100644
--- a/test/core/js/modules/webcaosdb.js.js
+++ b/test/core/js/modules/webcaosdb.js.js
@@ -1945,7 +1945,9 @@ QUnit.test("init_restore_version_buttons", async function (assert) {
     assert.ok(!restore_button.hasClass("d-none"), "restore_button is not hidden anymore");
 
     // restore_button triggers retrieval of history
+    localStorage["form_elements.alert_decision.restore_entity"] = "proceed";
     restore_button.first().click();
+    localStorage.removeItem("form_elements.alert_decision.restore_entity");
     await sleep(500);
 
     // restore is not possible in the unit test