Try setting UseGuiThreadIfAvailable to false, which will cause all event-handlers to be called on whichever thread is invoking the methods on FTPConnection. If that doesn't work then you will need to use a delegate and the Control.BeginInvoke method.
- Hans (EnterpriseDT)