Ravi Lanka wrote: > cdef foo* fooPtr > fooPtr = &(b.getFoo()) > > With the code above, I get "Taking address of a non-lvalue" error. No, declare the function as though it returned a pointer, and then use it as such. Similarly for any function that takes a reference as an argument -- declare it in Pyrex as taking a pointer. -- Greg