diff --git a/modules/store/src/main/scala/docspell/store/queries/QOrganization.scala b/modules/store/src/main/scala/docspell/store/queries/QOrganization.scala
index d83e2a25..dc3c13fd 100644
--- a/modules/store/src/main/scala/docspell/store/queries/QOrganization.scala
+++ b/modules/store/src/main/scala/docspell/store/queries/QOrganization.scala
@@ -197,8 +197,9 @@ object QOrganization {
     for {
       n0 <- RItem.removeCorrOrg(collective, orgId)
       n1 <- RContact.deleteOrg(orgId)
-      n2 <- ROrganization.delete(orgId, collective)
-    } yield n0 + n1 + n2
+      n2 <- RPerson.removeOrg(orgId)
+      n3 <- ROrganization.delete(orgId, collective)
+    } yield n0 + n1 + n2 + n3
 
   def deletePerson(personId: Ident, collective: Ident): ConnectionIO[Int] =
     for {
diff --git a/modules/store/src/main/scala/docspell/store/records/RPerson.scala b/modules/store/src/main/scala/docspell/store/records/RPerson.scala
index cb2d2909..8f265a48 100644
--- a/modules/store/src/main/scala/docspell/store/records/RPerson.scala
+++ b/modules/store/src/main/scala/docspell/store/records/RPerson.scala
@@ -178,4 +178,7 @@ object RPerson {
       case None =>
         Sync[ConnectionIO].pure(Vector.empty)
     }
+
+  def removeOrg(orgId: Ident): ConnectionIO[Int] =
+    DML.update(T, T.oid === orgId, DML.set(T.oid.setTo(None)))
 }