Swiss voters have backed joining a European passport-free zone and giving more rights to same-sex couples in separate referendums on Sunday.
Right-wing groups urged no - but the vote was yes
Official results from all 26 cantons showed 58% backed the same-sex move and 54.6% supported joining the Schengen group of European nations.
The Swiss government had urged a yes in both votes.
Backing Schengen will also allow the Swiss police to share information with EU states on crime.
Switzerland is not a member of the European Union, but is surrounded by countries which are.
Joining the Schengen zone means that it will scrap border checks with its neighbours by 2007.
Both votes were forced by signature campaigns
The same-sex vote gives gay couples the same inheritance and tax rights as married heterosexual couples. However, they will not be allowed to adopt or to undergo fertility treatment.
It was the first time a country had held a nationwide referendum on this issue.
Legislators had approved the move, but a coalition of religious and conservative groups had gathered 50,000 signatures to force the referendum.
Critics of Schengen had also forced the referendum vote with 50,000 signatures.
Schengen will allow Swiss police to share information with their EU colleagues about all sorts of crimes, from money-laundering to suspected terrorist organisations.
The Dublin accord, which has also been backed in the referendum, will give Switzerland access to Eurodac, the database which is supposed to prevent asylum-seekers making applications to more than one European country.
The Swiss "yes" vote on Schengen and Dublin comes in the wake of "no" votes in France and the Netherlands on approving the EU constitution.