diff --git a/app/models/communication/website.rb b/app/models/communication/website.rb
index 2de5b4a46d557de7f4760a600e9a05de5435df0f..6820e3868a2a2eba2d9d0507535de4d09135d40b 100644
--- a/app/models/communication/website.rb
+++ b/app/models/communication/website.rb
@@ -88,6 +88,8 @@ class Communication::Website < ApplicationRecord
   end
 
   def dependencies
+    # Le website est le SEUL cas d'auto-dépendance
+    [self] +
     configs +
     pages +
     posts +
diff --git a/app/models/communication/website/with_git_repository.rb b/app/models/communication/website/with_git_repository.rb
index 3f76c0fe093853a34003fd27b1ea266819f16677..b42580aaef7afa26f77381b63dcd3ec7ffd3734a 100644
--- a/app/models/communication/website/with_git_repository.rb
+++ b/app/models/communication/website/with_git_repository.rb
@@ -11,11 +11,11 @@ module Communication::Website::WithGitRepository
     @git_repository ||= Git::Repository.new self
   end
 
-  # Supprimer tous les git_files qui ne sont pas dans les recursive_dependencie_syncable
+  # Supprimer tous les git_files qui ne sont pas dans les recursive_dependencies_syncable
   def destroy_obsolete_git_files
     website_git_files.find_each do |git_file|
       dependency = git_file.about
-      is_obsolete = !dependency.in?(recursive_dependencie_syncable)
+      is_obsolete = !dependency.in?(recursive_dependencies_syncable)
       if is_obsolete
         # TODO git_file.destroy serait plus ActiveRecord
         Communication::Website::GitFile.sync(self, dependency, destroy: true)
diff --git a/app/models/concerns/as_direct_object.rb b/app/models/concerns/as_direct_object.rb
index cfbaec991499b42af9995809793584b67ba5f761..6b21fb09cbfa59c3a302e7fd43a61f7d46fbe188 100644
--- a/app/models/concerns/as_direct_object.rb
+++ b/app/models/concerns/as_direct_object.rb
@@ -17,11 +17,13 @@ module AsDirectObject
                class_name: 'Communication::Website',
                foreign_key: :communication_website_id
 
-    has_many  :connections, 
+    has_many  :connections,
               as: :direct_source,
               class_name: 'Communication::Website::Connection',
               dependent: :destroy # When the direct object disappears all connections with the object as a source must disappear
 
+    after_save  :sync_connections
+    after_touch :sync_connections
   end
 
   def is_direct_object?
@@ -31,4 +33,10 @@ module AsDirectObject
   def is_indirect_object?
     false
   end
+
+  def sync_connections
+    dependencies.each do |dependency|
+      website.connect(dependency, self)
+    end
+  end
 end
\ No newline at end of file