Visual Basic, 87 bytes
Imports c=System.Console
Module A
Sub Main
c.Write(Chr(c.Read))
Main
End Sub
End Module
Similar to my C# answer. Here, a recursive call to Main
(!) turned out to be the fastest way to loop. Microsoft's vbc
doesn't complain, but I don't know if it's secretly filling the stack.