diff --git a/aleksis/core/frontend/mixins/aleksis.js b/aleksis/core/frontend/mixins/aleksis.js
index 09f26a6c6c98dbdd86f7c83534ecae2583e10059..036e2eac71db6304bba88e2a01c3cfbe33edca51 100644
--- a/aleksis/core/frontend/mixins/aleksis.js
+++ b/aleksis/core/frontend/mixins/aleksis.js
@@ -25,15 +25,19 @@ const aleksisMixin = {
   beforeDestroy() {
     // Unregister all safely added event listeners as to not leak them
     for (let trackedEvent in this.$data.$_aleksis_safeTrackedEvents) {
-      console.debug(
-        "Removing handler for %s on %o",
-        trackedEvent.event,
-        trackedEvent.target
-      );
-      trackedEvent.target.removeEventListener(
-        trackedEvent.event,
-        trackedEvent.handler
-      );
+      if (trackedEvent.target) {
+        console.debug(
+          "Removing handler for %s on %o",
+          trackedEvent.event,
+          trackedEvent.target
+        );
+        trackedEvent.target.removeEventListener(
+          trackedEvent.event,
+          trackedEvent.handler
+        );
+      } else {
+        console.debug("Target already removed while removing event handler");
+      }
     }
   },
 };
diff --git a/aleksis/core/tests/views/test_account.py b/aleksis/core/tests/views/test_account.py
index d56eeb0f6703d2a9f36d282942f8a8c0406126f6..fa55e8465bfa50b2a12479f6c72ee747cd1f2ef6 100644
--- a/aleksis/core/tests/views/test_account.py
+++ b/aleksis/core/tests/views/test_account.py
@@ -26,19 +26,6 @@ def test_index_not_logged_in(client):
     assert response["Location"].startswith(reverse(settings.LOGIN_URL))
 
 
-def test_login_without_person(client, django_user_model):
-    username = "foo"
-    password = "bar"
-
-    django_user_model.objects.create_user(username=username, password=password)
-    client.login(username=username, password=password)
-
-    response = client.get("/django/", follow=True)
-
-    assert response.status_code == 200
-    assert "Your user account is not linked to a person." in response.content.decode("utf-8")
-
-
 def test_logout(client, django_user_model):
     username = "foo"
     password = "bar"
diff --git a/tox.ini b/tox.ini
index 410287cc8d3d537471f46086955081f8ff2b0c58..a3ceaee7109ce6df70715bb4c9abc43a1b4c876d 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,7 +1,7 @@
 [tox]
 skipsdist = True
 skip_missing_interpreters = true
-envlist = py37,py38,py39
+envlist = py39,py310,py311
 
 [testenv]
 whitelist_externals = poetry