You should search the forum before posting a question, It has been asked before.
For now, I can give you an explaination:
c.aob = a.aob and a.aob =b so effectively, c.aob = b.
So when c.aob = null means b = null now b also has and object b.aob which will also be eligible for gb if b is nulled.
So, there are two objects one referred by 'b' and one that is referred by 'b.aob'.
HTH