diff --git a/app/models/concerns/with_connections.rb b/app/models/concerns/with_connections.rb
index 01c9e175561fe752861f4de1039deac54b5a3a17..16f4b84d26c5c5c27450c7375221553a06246411 100644
--- a/app/models/concerns/with_connections.rb
+++ b/app/models/concerns/with_connections.rb
@@ -15,9 +15,10 @@ module WithConnections
     # Ce serait super de faire la ligne ci-dessous, mais Rails ne sait pas faire ça avec un objet polymorphe (direct_source)
     # has_many :direct_sources, through: :connections
 
-    after_save  :sync_connections
-    after_touch :sync_connections
-    after_save  :sync_obsolete_dependencies
+    after_save    :sync_connections
+    after_touch   :sync_connections
+    after_save    :sync_obsolete_dependencies
+    after_destroy :destroy_obsolete_connections
   end
 
   def for_website?(website)
@@ -47,7 +48,6 @@ module WithConnections
                                     : reference.direct_sources # Récursivité sur les références
   end
 
-
   def sync_connections
     direct_sources.each do |direct_source|
       direct_source.website.connect self, direct_source
@@ -55,6 +55,13 @@ module WithConnections
     end
   end
 
+  # La suppression d'un objet indirect déclenche le recalcul des connexions de tous les objets directs
+  def destroy_obsolete_connections
+    direct_sources.each do |direct_source|
+      # TODO
+    end
+  end
+
   def sync_obsolete_dependencies
      # TODO: pas ouf de passer par le site, ce serait plus léger en calcul de faire une analyse plus étroite
     websites.each do |website|
diff --git a/test/models/communication/website/connections_test.rb b/test/models/communication/website/connections_test.rb
index 845a25096e30a0b57eb1adb00dffc919d623e4cf..497432054cdfa85e8aee71b0354a277420c14d2a 100644
--- a/test/models/communication/website/connections_test.rb
+++ b/test/models/communication/website/connections_test.rb
@@ -50,7 +50,7 @@ class Communication::Website::ConnectionsTest < ActiveSupport::TestCase
 
     # On supprime le bloc qui contient PA : -1 (mais devrait être -2 parce que PA devrait être supprimé aussi, c'est le problème du saumon)
     # https://developers.osuny.org/docs/admin/communication/sites-web/dependencies/iteration-4/#olivia-et-le-saumon-de-schr%C3%B6dinger
-    assert_difference -> { Communication::Website::Connection.count } => -1 do
+    assert_difference -> { Communication::Website::Connection.count } => -2 do
       page.blocks.find_by(position: 2).destroy
     end
   end