Danke für deine Hilfe Stefan.

Das Problem ist nicht, dass die Daten aus Befehlen kommen, sondern dass du \qrcode im Argument eines Befehls versteckt. \qrcode will catcodes ändern und kann das dann nicht mehr. Im Unterschied zu \verb funktioniert \qrcode dort trotzdem, aber wie in der Dokumentation beschrieben, musst du dann alle möglichen Eingaben escapen.Das Problem scheint zu sein, daß ich einige Daten aus Befehlen hole, und dann irgendwie der Zeilenumbruch verloren geht.