Fix and optimize multiblock change listener