diff --git a/src/SingleImagePackModel.cpp b/src/SingleImagePackModel.cpp
index daec135fac3abb6b5bd0063f6cc588e250e91dae..95a863d38893657d285f912b30ccc51ee990810e 100644
--- a/src/SingleImagePackModel.cpp
+++ b/src/SingleImagePackModel.cpp
@@ -8,6 +8,7 @@
 #include <QFileInfo>
 #include <QMimeDatabase>
 
+#include <mtx/events/mscs/image_packs.hpp>
 #include <nlohmann/json.hpp>
 
 #include <unordered_set>
@@ -306,6 +307,20 @@ SingleImagePackModel::save()
 void
 SingleImagePackModel::remove()
 {
+    // handle account pack deletion.
+    // Sadly we cannot actually delete the pack,
+    // so we just send an empty pack to clear out its information.
+    if (roomid_.empty()) {
+        http::client()->put_account_data(
+          mtx::events::msc2545::ImagePack(), [](mtx::http::RequestErr e) {
+              if (e)
+                  ChatPage::instance()->showNotification(
+                    tr("Failed to update image pack: %1")
+                      .arg(QString::fromStdString(e->matrix_error.error)));
+          });
+        return;
+    }
+
     http::client()->send_state_event(
       roomid_,
       to_string(mtx::events::EventType::ImagePackInRoom),