Critics say the deal will help free and pardon convicted Iranian terrorists.
Belgian MPs have approved a controversial prisoner exchange treaty with Iran despite protests from human rights groups.
Lawmakers voted on Wednesday to ratify the deal, which allows Brussels and Tehran to transfer convicted criminals to each other.
A total of 79 MPs voted in favour while 41 rejected the treaty, and 11 abstained.
The treaty was signed by the two countries in March and was backed by a Belgian parliamentary committee earlier this month.
Exiled Iranian opponents and NGOs have slammed the deal as "shameful" and say it allows Iran to engage in "hostage diplomacy".
Critics also say the agreement would allow convicted terrorist Assadollah Assadi to be exchanged and pardoned.
Assadi was jailed for 20 years last year for "attempted terrorist assassination" over a bomb plot at a gathering of Iranian opponents near Paris in June 2018.
Tehran has rejected allegations that Assadi was operating under the instructions of Iranian intelligence and has called for his "unconditional release".
Under the treaty, the 50-year-old Iranian diplomat could now be swapped for Olivier Vandecasteele, a Belgian humanitarian worker who has been held "illegally" in Tehran on espionage charges since February.
In a recent video message, Vandecasteele's family urged Brussels to "do everything" to release him.
Justice Minister Vincent Van Quickenborne has defended the treaty and highlighted the need to free innocent people from Iran's "authoritarian" regime.
He has also rejected criticism that the government has been pressured into the deal by Tehran.
"Belgium does not abandon its citizens," Van Quickenborne said during a parliamentary debate on Tuesday.
The Belgian-Iranian treaty may also help release Swedish-Iranian academic Ahmadreza Djalali, who has taught in Belgium and has been sentenced to death in Iran.
But Amnesty International has warned that the agreement must not "serve to grant impunity" to Iranian agents who commit crimes in Europe.