Swiss voters have narrowly approved a government proposal to give one billion Swiss francs (630m euros) in aid to the 10 new members of the European Union.
The aid package had already been backed by the Swiss parliament
Switzerland opted out of joining the EU years ago - but agreed deals that keep its trade relations with Europe alive. The EU in return has asked for money.
The Swiss government warned voters that saying no could damage the economy.
Correspondents say Swiss pragmatism has again beaten the instinctive desire to keep Brussels at arm's length.
About 53% of voters supported the plan - already approved by the Swiss parliament - in Sunday's referendum.
Opponents had argued Switzerland should not have to pay for EU expansion and warned that approval would set a dangerous precedent.
The money will go to the EU's cohesion fund, which helps less-developed members of the bloc.
The BBC's Imogen Foulkes in Bern says this was one of the closest votes in Switzerland for years.
At stake were Switzerland's bilateral trade agreements with the EU, painstakingly negotiated over 10 years, our correspondent says.
Although Switzerland opted out of the EU, it is surrounded by member countries and almost 70% of its exports are sold in the bloc.
Brussels has always made it clear that Switzerland cannot just cherry pick the advantages of the EU, our correspondent says, and so has insisted it pays up.
The money, almost half of which will go to Poland, will be paid over 10 years. A large proportion will be redirected from aid currently being given to eastern European states.