diff --git a/TODO b/TODO
index 8af2b8914..62c45a59d 100644
--- a/TODO
+++ b/TODO
@@ -40,6 +40,4 @@ TODO:
* refine the storage fallback mechanism for views (ie alloc?)
* sigh_mixin: automatic signal registration
* sigh_mixin: change cb signature from reg/entt to storage/entt (breaking for the good)
-* reactive_mixin: note about no-auto-disconnect mechanism
-* reactive_mixin: in-code and md doc about callback signature
* don't pass reactive storage by default to callback
diff --git a/docs/md/entity.md b/docs/md/entity.md
index f91644982..9fb5419ff 100644
--- a/docs/md/entity.md
+++ b/docs/md/entity.md
@@ -489,8 +489,8 @@ storage.bind(registry);
In this case, it must be provided with a reference registry for subsequent
operations.
-Alternatively, when using the value type provided directly by `EnTT`, it's also
-possible to create a reactive storage directly inside a registry:
+Alternatively, when using the value type provided by `EnTT`, it's also possible
+to create a reactive storage directly inside a registry:
```cpp
entt::registry registry{};
@@ -622,10 +622,21 @@ for(auto [entity, pos]: storage.view(entt::exclude).each())
The registry used in this case is the one associated with the storage and also
available via the `registry` function.
-Finally, it should be noted that a reactive storage never deletes its entities
-(and elements, if any).
-To process and then discard entities at regular intervals, refer to the `clear`
-function available by default for each storage type.
+It should be noted that a reactive storage never deletes its entities (and
+elements, if any). To process and then discard entities at regular intervals,
+refer to the `clear` function available by default for each storage type.
+Similarly, the reactive mixin doesn't disconnect itself from observed storages
+upon destruction. Therefore, users have to do this themselves:
+
+```cpp
+entt::registry = storage.registry();
+
+registry.on_construct().disconnect(&storage);
+registry.on_construct().disconnect(&storage);
+```
+
+Destroying a reactive storage without disconnecting it from observed pools will
+result in undefined behavior.
## Sorting: is it possible?