> Right, so the problem really seems to be in throwing/catching > exception. Function "_notmuch_message_remove_term" is supposed to > catch the exception and ignore it. Which does not happen in my case. Yep, that was exactly what I was seeing. > On a side note, I wonder, is catching exception faster than going > through list of tags to see if given tag exists? Might be interesting > to compare. I tried that as a workaround at first (just to get it working, not caring about performance). But I realized that libxapian uses exceptions for a lot of failure modes, and I actually ran into one or two others, so I decided I needed to just get it working. To simplify the problem, you might want to try building a very simple stub version of the whole thing -- i.e. a C program that makes a call to a C-interface "liba", which just makes a call into a C++ "libb" library and tries to catch an exception from it; the "libb" library would just throw an exception. If that reproduces the problem, that might help you debug your setup. (Again, I eventually settled on using GCC 4.5.2, and didn't have the intestinal fortitude to get Studio working. Especially once I saw problems with C++ exception handling. If you can get it working, more power to you!) Blake