Sachverhalt: A. A.a Das Bezirksgericht Horgen verurteilte X._ am 25. Februar 2009 wegen Betruges und Veruntreuung zum Nachteil von A._. In Gutheissung der Berufung sprach ihn das Obergericht des Kantons Zürich am 16. November 2009 vollumfänglich frei. A.b Das Bundesgericht hob das Urteil des Obergerichts am 8. Juni 2010 auf Beschwerde von A._ hin auf und wies die Sache zur Neubeurteilung an die Vorinstanz zurück (Urteil 6B_22/2010), weil die Vorinstanz die Aussagen von A._ und des Zeugen B._ zu Unrecht als unverwertbar erachtet hatte. B. Das Obergericht des Kantons Zürich befand X._ mit Urteil vom 16. Dezember 2010 der Veruntreuung und des Betrugs schuldig. Es bestrafte ihn mit einer bedingt vollziehbaren Freiheitsstrafe von 15 Monaten, als Zusatzstrafe zum Strafbefehl der Staatsanwaltschaft Limmattal/Albis vom 2. Juni 2008. X._ wurde verpflichtet, A._ Fr. 476'129.10 Schadenersatz nebst Zins zu bezahlen. C. Gegen dieses Urteil erhebt X._ Beschwerde in Strafsachen. Er beantragt, das angefochtene Urteil sei aufzuheben. Er sei von Schuld und Strafe freizusprechen. Die Schadenersatzbegehren der Geschädigten seien auf den Zivilweg zu verweisen. Das Verfahren sei zur Neuverlegung der Kostenfolgen, eventualiter zur gesamthaften Neubeurteilung, an die Vorinstanz zurückzuweisen. Es sei ihm die unentgeltliche Prozessführung zu gewähren und sein Rechtsvertreter als unentgeltlicher Rechtsbeistand zu bestellen. D. A._ reichte eine Vernehmlassung ein. Sie stellte keinen bestimmten Antrag. Das Obergericht und die Oberstaatsanwaltschaft des Kantons Zürich verzichteten auf eine Vernehmlassung. 