diff --git a/CHANGES b/CHANGES
index fef72124b3c25a14f92f1acc7bdc07be1f7100bd..bd1a7a794f1cf78043c55643c6852b55b2186372 100644
--- a/CHANGES
+++ b/CHANGES
@@ -150,6 +150,13 @@ Core:
    by the system.
  * The STATIC_BUILD functionality has been removed as it has not been maintained
    and has not worked in quite some time.
+ * The module loader now enforces inter-module dependencies.  This ensures that
+   a module is not started before another it depends on, even if preload is used.
+   If a dependency is not available or fails to startup this will block any
+   dependants from startup.
+ * Parts of the Asterisk core which can load configuration from realtime are now
+   built-in modules.  It is no longer necessary to preload realtime drivers as
+   they are always initialized before the built-in modules.
 
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 15.5.0 to Asterisk 15.6.0 ------------
diff --git a/UPGRADE-16.txt b/UPGRADE-16.txt
index b2bd28d79a71bdf88bd1f31ca4c62422ddd76b45..93e4b5218b6dfa6a749512496976f7257e31d114 100644
--- a/UPGRADE-16.txt
+++ b/UPGRADE-16.txt
@@ -77,3 +77,10 @@ res_monitor:
 Core:
  - libedit is no longer available as an embedded library and must be provided
    by the system.
+ - The module loader now enforces inter-module dependencies.  This ensures that
+   a module is not started before another it depends on, even if preload is used.
+   If a dependency is not available or fails to startup this will block any
+   dependants from startup.
+ - Parts of the Asterisk core which can load configuration from realtime are now
+   built-in modules.  It is no longer necessary to preload realtime drivers as
+   they are always initialized before the built-in modules.