with ThisForm.Olecontrol1 debugout .inbuffercount if .inBufferCount > 80 &&105 junk = .t. wait window nowait "got data" m.temp = m.temp + .input do while occurs(chr(13),m.temp) > 0 lnpos = at(Chr(13),m.temp) if lnpos > 0 m.line1 = left(m.temp,lnpos-1) else m.line1 = m.temp endif m.line1 = strtran(m.line1,chr(10),"") m.line1 = strtran(m.line1,chr(13),"") if inlist(left(m.line1,1),"I","O","N","T","D","h","S","t","A","F","H","L","W") wait window nowait "Adding a Record" thisform.addrecord(m.line1) thisform.refresh() m.temp = substr(m.temp,min(lnpos+2,len(m.temp))) else m.temp = substr(m.temp,min(lnpos+2,len(m.temp))) endif enddo else wait clear endif endwith>James, I looked into this about a year or so ago and as I recall you can do pooling for new content or wait for an event. Would you mind sharing the code set up on using the mscomm control?