Fix listener
Avoid adding duplicates because of recursion