diff --git a/scene/main/node.cpp b/scene/main/node.cpp index c05d5af9557..6ec49348304 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -2407,7 +2407,7 @@ void Node::_duplicate_signals(const Node *p_original, Node *p_copy) const { if (!copytarget) copytarget = target; - if (copy && copytarget) { + if (copy && copytarget && !copy->is_connected(E->get().signal, copytarget, E->get().method)) { copy->connect(E->get().signal, copytarget, E->get().method, E->get().binds, E->get().flags); } }