Maybe I could do this? Run my parser in a separate thread. The input character stream can block when it needs more data, at which point the main thread of my GUI app could put data into its queue... Does this approach sound like it would work? -- Rick