There is another thing I realized just a moment ago. Dont know if this causes the problem though. : )

Quote:
((USEABLE_OBJECT*)tmpObj).description = strTemp;

This just stores a pointer to the local variable. Have you already tried to use str_cpy or str_create here?