Germany’s interior minister says he cannot rule out suspending participation in the agreement allowing passport-free travel between most European states.
Thomas de Maiziere told the BBC he supported the Schengen Agreement, but that it could be “in danger”.
He also called on Britain to accept more migrants.
Germany expects to receive 800,000 asylum applications this year alone, far more than other EU states.
“Of course Britain has a special role – it is not part of Schengen,” Mr de Maiziere said. “But all EU countries must become more aware of their responsibilities.”
The Schengen area is made up of 26 European countries, mostly in the EU, which have abolished border controls and established common rules on asylum.
But Mr de Maiziere said this has been threatened by countries failing to adhere to the principle that responsibility for processing claims lies with the country that played the biggest part in the applicant’s entry to the EU.
The principle is enshrined in the Dublin Regulation. Most of the migrants crossing the Mediterranean arrive in Greece and Italy first, where the authorities say they cannot cope with the numbers. Under Schengen, many migrants then head north, hoping for asylum elsewhere in the EU.
“If nobody sticks to the law, then Schengen is in danger, that’s why we urgently need European solutions,” he said.
His comments come amid what one EU official called “the worst refugee crisis since the Second World War”.
The border agency Frontex has said some 340,000 migrants arrived in the EU this year alone, many of whom travelled in dangerous, rickety boats to Italy and Greece.
On Friday, Macedonian police fired tear gas at crowds of migrants at the Greek border, trying to enter the country to travel north.