The Swiss government has decided to re-impose immigration quotas on workers from central and eastern European Union (EU) countries.
Until last year, Switzerland had a quota of 2,000 residency permits per year for citizens of the so-called "A8" nations, which joined the EU in 2004.
The Swiss cabinet has decided to invoke a "safeguard clause" in its agreement with the EU on freedom of movement.
The decision has been criticised by the EU.
Switzerland says that in the past year, since the quota lapsed, it has granted 6,000 permits to nationals of the eight countries - Poland, Hungary, the Czech Republic, Slovakia, Slovenia, Estonia, Latvia and Lithuania.
It now plans to re-introduce a quota of 2,000 permits annually from 1 May.
The EU's foreign policy chief, Catherine Ashton, said she regretted the Swiss decision.
In a strongly worded statement , Baroness Ashton said she considered the measure to be in breach of the free movement agreement between Switzerland and the EU.
"The agreement does not allow for any differentiation between EU citizens," she said.
The Swiss government said that it recognised the "positive impact" that immigration from the EU had had. But it said that the "complexity" of the topic of immigration meant that a discussion about the labour market and integration was required.
The right-wing Swiss People's Party wants to amend Switzerland's constitution to set immigration quotas. The party has gathered the required number of signatures to force the government to hold a referendum.