diff --git a/ldapalchemy/model.py b/ldapalchemy/model.py
index 37bacc9d7b1aab6ab9b30d411001cbf9c34ab953..c5e2fc33964ba1aba50d04b451e49f00f1a19380 100644
--- a/ldapalchemy/model.py
+++ b/ldapalchemy/model.py
@@ -18,8 +18,9 @@ except ImportError:
 from . import core
 
 def add_to_session(obj, session):
-	for func in obj.ldap_add_hooks:
-		func(obj)
+	if obj.ldap_object.session is None:
+		for func in obj.ldap_add_hooks:
+			func(obj)
 	session.add(obj.ldap_object, obj.dn, obj.ldap_object_classes)
 
 class Session: