Hi I wanted to step into SharedQueue code, but got a hanged vm on simple test code below. It works fine in Pharo 3 but hangs in Pharo4-40611 and Pharo5-50029, it does not hang in squeak 4.5 but the Monitor code is not the same. In a playgound, execute the first two lines of code then select the third line and 'Debug it' (right click menu option) to step into it. q := SharedQueue new . q nextPut: 1 . q next. Everything goes fine until stepping into 'aBlock value' in Monitor>>critical: critical: aBlock ^[ self enter. Hangs here >>>>aBlock value<<<<<< ] ensure: [self exit]. The vm get hanged and can be interrupted only once, then it is completely hanged. I once got an error message Error: Monitor access violation message and a stack trace in debug log before hanging but was unable to reproduce it (something related to effectiveProcess?) --- The full stack --- Monitor(Object)>>error: Monitor>>checkOwnerProcess Monitor>>waitWhile:for:maxMilliseconds: Monitor>>waitWhile:for: Monitor>>waitWhile: [ monitor waitWhile: [ items isEmpty ]. items removeFirst ] in SharedQueue>>next [ self enter. aBlock value ] in Monitor>>critical: BlockClosure>>ensure: Monitor>>critical: SharedQueue>>next UndefinedObject>>DoIt CompiledMethod>>valueWithReceiver:arguments: [ aCompiledMethod valueWithReceiver: anObject arguments: (evalContext ifNil: [ #() ] ifNotNil: [ {evalContext} ]) ] in RubSmalltalkEditor>>debug:receiver:in: [ self value. Processor terminateActive ] in BlockClosure>>newProcess ------------------------------------------------------------------------------- Can someone have a look and confirm it is a bug before I open a bug entry ? And/or give me hints on how to debug this ? I tried to modify Monitor>>waitWhile: and put a delay, put traces but still hanging. DebugSession someInstance stepInto does not hang, but I'm not sure that the execution flow is the same ... TIA -- Regards, Alain