This paper proposes an efficient approach for constraint handling in multi-objective particle swarm optimization. The particles population is divided into two non-overlapping populations, named infeasible population and feasible population. The evolution process in each population is done independent of the other one. The infeasible particles are evolved in the constraint space toward feasibility. During evolution process, if an infeasible particle becomes a feasible one, it migrates to feasible population. In a parallel process, the particles in feasible population are evolved in the objective space toward Pareto optimality. At each generation of multi-objective particle swarm optimization, a leader should be assigned to each particle to move toward it. In the proposed method, a different leader selection algorithm is proposed for each population. For feasible population, the leader is selected using a priority-based method in three levels and for infeasible population, a leader replacement method integrated by an elitism-based method is proposed. The proposed approach is tested on several constrained multi-objective optimization benchmark problems, and its results are compared with two popular state-of-the-art constraint handling multi-objective algorithms. The experimental results indicate that the proposed algorithm is highly competitive in solving the benchmark problems.