The judges in Karlsruhe gave qualified approval to the treaty
Germany's Constitutional Court has ruled that the EU's Lisbon Treaty is compatible with German law - but has suspended ratification of it.
The court said extra national legislation was needed to ensure that the German parliament participated fully in adopting EU laws.
The controversial treaty is aimed at streamlining EU institutions to improve their efficiency.
A number of German MPs had asked the court to decide against the treaty.
Lisbon faces another big test later this year in the Republic of Ireland, where it will be put to a second referendum. Irish voters rejected the treaty in a referendum a year ago.
EU leaders are keen to wrap up Lisbon Treaty ratification this year
The German parliament has already ratified the treaty, but President Horst Koehler has not signed it yet.
The court statement, quoted by the AFP news agency, said Germany's Lisbon ratification document "may not be adopted until the sufficient legal groundwork for parliamentary participation as foreseen in the constitution has been laid".
"If one wanted to summarise this result, one could say: the constitution says 'yes' to the Lisbon Treaty but demands that parliament's right to participation be strengthened at the national level," the court said.
Opponents of the treaty claim it is undemocratic, that it undermines Germany's parliament and hands over too much power to Brussels.
A number of German lawmakers - mostly from the left-wing Linke party - went to court to try to stop the treaty. There was also an MP from a party allied to Chancellor Angela Merkel's conservatives.
Most EU member states have ratified the treaty, but the Eurosceptic presidents of the Czech Republic and Poland have not yet signed it, saying they will wait for the decision of Irish voters. The second Irish referendum is expected to happen in early October.
The treaty's opponents argue that it is just the defunct EU Constitution repackaged, and say it will undermine national sovereignty. The constitution was rejected by French and Dutch voters in 2005.
Officials in Germany's ruling coalition said parliament would vote on the legislation demanded by the court before Germany's general election on 27 September.
German media say the judges want it spelled out in law that parliament will have to vote on any changes to the Lisbon Treaty, or any expansion of EU competencies that impacts on German sovereignty.
Ireland's EU commissioner, Charlie McCreevy, has said the Lisbon Treaty would have been rejected in most EU countries if they had held referendums like in Ireland.
"I think all of the politicians of Europe would have known quite well that if a similar question had been put to their electorate in a referendum the answer in 95 percent of countries would have been 'No' as well," he told a meeting of accountants in Dublin on Friday.
He said EU heads of state were "glad they didn't have to put the question themselves to their people".