Have an error with TClonesArray::AbsorbObjects

Hello rooters,
I have had trouble with my soft using root (5.34/01 in ALTLinux 6). I can reproduce it in a small form:

{
TClonesArray *fArray = new TClonesArray("TNamed", 100);	

TClonesArray *fArray2 = new TClonesArray("TNamed", 100);

TClonesArray *fArray3 = new TClonesArray("TNamed", 100);

TClonesArray *fArray4 = new TClonesArray("TNamed", 100);

for(int i = 0; i < 304; i++) {
	fArray2->ConstructedAt(i);
}

for(int i = 0; i < 1; i++) {
	fArray3->ConstructedAt(i);
}

for(int i = 0; i < 5; i++) {
	fArray4->ConstructedAt(i);
}

fArray->AbsorbObjects(fArray2);
fArray->AbsorbObjects(fArray3);
fArray->AbsorbObjects(fArray4);

}

This code give:

ROOT:Error in <TObjArray::operator[]>: index 304 out of bounds (size: 304, this: 0x124a450) ROOT:Error in <TObjArray::operator[]>: index 305 out of bounds (size: 305, this: 0x124a450) root.exe: malloc.c:3097: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.

When I increase the number of elements in the constructor, problem disappears.
Thats is unexpected situation, because I see Expand() in AbsorbObjects() source code.
What did I do wrong here?

Best regards,
Bair