A far-right murder spree went undetected for years because German security services made scores of errors, partially because of institutional bias against immigrants, a parliamentary investigation has found.
The special cross-party committee's nearly 1,400-page report follows a 19-month review of how police and intelligence agencies failed to stop the so-called National Socialist Underground group from killing eight Turks, a Greek and a policewoman between 2000 and 2007.
The group was only linked to the killings after two main members died in a murder-suicide after a botched 2011 bank robbery. The third suspected main member is now on trial.
Committee members said police and domestic intelligence agencies were quick to attribute the murders to organised crime by immigrant groups - never properly considering the possibility that the killings could have been racially motivated and linked.
"The overarching theme is racism," committee member Petra Pau said of the review. "The NSU crimes were racist and the investigations had racist traits."
As one of 47 recommendations, the committee said German police and prosecutors should now be required to consider the possibility of a killing being a hate crime in every incident where the perpetrator is unknown. It recommended further that more minorities be hired to serve in police and intelligence services.
Turkish Foreign Minister Ahmet Davutoglu, speaking after meeting with German Foreign Minister Guido Westerwelle, welcomed the report and its recommendations, saying he was "very confident that the German people will continue to show sensitivity and underline their will for such movements not to damage the German people in future."
The committee also noted that authorities might have been able to put together enough evidence to lead them to the NSU earlier had they worked better across state lines.
Germany's domestic intelligence agency is tasked with tracking extremists, but each state has its own branch and its own police forces. The committee recommended better co-ordination between the more-than three dozen separate entities - something that has already been implemented.