Hi. I have been trying to understand a little how the Squeak GC works, and there is something very basic I don&#39;t understand. GC is supposed to start from the rootTable and mark all the objects that are reachable. This objects, includes those which are in the &quot;old space&quot;.  I mean, the old objects too. <br>
<br>The problem is that I don&#39;t find where in the code is that. If i look to ObjectMemory &gt;&gt; markAndTrace: oop    I see:<br><br>(self oop: oop isGreaterThanOrEqualTo: youngStart)<br>        ifTrue: [ header := header bitOr: MarkBit ].  &quot;mark only if young&quot;<br>
<br><br><br>So...it is only marked if young.<br><br>Then, in ObjectMemory &gt;&gt; startObj   I see<br><br>    (self oop: oop isLessThan: youngStartLocal)<br>        ifTrue: [&quot;old object; skip it&quot;<br>            field := oop.<br>
            ^ Upward].<br><br><br>So....where are the old objects being marked ?<br><br>Thanks in advance.<br><br>Mariano<br>