there's gotta be something goofy that i do here, i cant belive it wouldnt work. i need to add the security framework to my project. so i ctrl+click on the Frameworks / Linked Frameworks, Add -> Existing Frameworks, and i select the security framework for the iphone simulator platform, sdk, blah-blah. this also adds my framework to Targets / My Project / Link Binary with Libraries. i check to make sure the auto-added frameworks, like the foundation, are pretty much on the same path as the newly added security, so it looks like everything's consistent. back to my project, i add the #import line for the header of the newly added framework, then try to use a C function and a constant which are declared in the header file. when i try to build, the compiler complains that the constant is not recognized. (if i remove the #import line - same effect.) if i replace the constant with its actual (numeric) value, the compile is successful, but tle link editor complains that my function name is an unrecognized symbol. now if i do all this thing again with the address book framework instead of the security framework, using same platform, same sdk, same directories - everything works. it drives me nuts. of course i verified the name of the header file, directory names and so on. if i expand the framework line on the left "groups and files" pane, the expected header files are shown. any idea what else i should check?... thank you for the advices.