Members of the European Parliament have approved a draft law setting a common standard for asylum-seekers across the EU but suggested more than 100 changes.
Many thousands of migrants try to enter the EU each year
The proposal is designed to stop "asylum-shopping", whereby applicants try to gain the best social benefits by applying in more than one country.
MEPs rejected the idea of a list of super-safe countries, from which asylum claims would not be accepted.
They also said applicants had a right of appeal if refused refugee status.
The parliament's vote was non-binding, put correspondents say it puts pressure on the EU not to water down human rights safeguards.
The MEPs warned that they could take EU member states to court if the legislation did not comply with the 191 Geneva Convention on Refugees.
Speaking in the European Parliament, Justice Commissioner Franco Frattini said there were more than 20 different systems of asylum in the EU and the treatment of refugees needed to be harmonised.
Some parties in the parliament, including the main centre-right group - the European People's Party/European Democrats - approve the idea of super-safe countries.
The EU is already negotiating re-admission agreements with several countries, including Morocco, Turkey, China and Ukraine.
Italy and Germany have suggested that the EU should fund joint asylum centres in North Africa in an attempt to stop the flow of illegal immigrants into Europe.
The parliament said migrants should only be held "if it is necessary, lawful and justified".
Last year, the EU adopted a common definition of who is a refugee, and EU states can now compare the fingerprints of asylum claimants to see if they have already applied in another country.
It is aiming to have a joint asylum policy by 2010.