# 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.