Probably most people don't look much at Tools > Process Browser. I never did until I doing the delay refactoring to keep track of when the timer event loop was running. I often find several of the following processes stuck on a semaphore... [ sem notNil ifTrue: [ sem wait. view ifNotNil: [ view stylerStyledInBackground: text ] ] ] forkAt: Processor activePriority. So I had a little dig. Now trying to fix this multithreaded code at this late stage has some risk of destabilising things, so I propose the following minimal effective change... [ sem notNil ifTrue: [ (sem waitTimeoutSeconds: 5) ifFalse: [ view ifNotNil: [ view stylerStyledInBackground: text ] ] ] ] forkAt: Processor activePriority. Can anyone more familiar with SHTextStyler than the half hour I've had comment if they foresee any problem with that? cheers -ben