I'm trying to read COM & then stdin: 1. Wait & get data from COM 2. Ask for tag 3. stdout tag & msg from com port. 4. start over ---- proc test {msg} { set re {[^a-z0-9]*} regsub -nocase $re $msg {} msg puts $msg puts -nonewline "Tag: " set tag [gets stdin] puts "tag=$tag msg=$msg" } proc rd_chid {chid} { set msg [gets $chid] test $msg } proc open_com {} { global com set com [open com1: r+] fconfigure $com -mode 9600,n,8,1 -blocking 0 -translation auto -buffering line fileevent $com readable [list rd_chid $com] } open_com vwait forever #close $c ---- [Category Windows]