Swiss voters voted "Yes" on Sunday on an agreement extending the right of European Union citizens to live and work in Switzerland.
Official results showed 59.6% of voters backed a renewal of an existing agreement allowing migrant workers into Switzerland and extending it to new EU members Bulgaria and Romania. Swiss workers also have access to EU countries.
Opposition to immigrants led to the referendum being held on the proposed renewal of an existing 2002 accord with the EU.
The Swiss People's Party, Switzerland's biggest party, had called for a "No" vote against the government proposal.
The SVP was backed by citizens' groups in Geneva and Italian-speaking areas where large numbers of people cross the border from France and Italy each day to work in Switzerland.
However, only four cantons voted against the pact, with the other 22 in favour.
It was announced on Friday that unemployment in Switzerland reached 3.3% in January - the highest for two years.