on system of interest (Debian Lenny) confirmed with asterisk 1.4 and 1.6.
Code review shhown that i->owner->cid.cid_rdnis can be changed by ast_(strdup,free) and by standard C library functions at same time.
To resolve this and future problems generally change malloc -> ast_malloc, strdup -> as_strdup and free -> ast_free.