Hm, ok. I pointed that because it is a bad pratice and could be the error, seems I was wrong, sorry.
Have you tried loging the pointer by using %p to check if the memory addresses are correct (or using the debugger to check them)?
Can you post the code where you add to the list?