Hi All, I have struggled through getting a parser set up with qi, but in the end it all worked out. Its really a nice library once you get the hang of it a bit! I have one leftover question. I now have an inline function with phoenix for the error handler as per the example, but as i'm using it multiple times, i would like to make its own function that i can reuse. I have tried a function object, wrapped in a phoenix function or not, but never got it to work (either got number of argument mismatches or errors that const-volatile qualifiers were being dropped). So basically, how would i rewrite the below into a free function (object/etc)? qi::on_errorqi::fail ( stimSpecVec // rule name , std::cout // the function << phoenix::val("Error! Expecting \"") << qi::_4 // what failed? << phoenix::val("\", but got: \"") << phoenix::constructstd::string(qi::_3, qi::_2) // iterators to error-pos, end << phoenix::val("\"") << std::endl ); Thanks! Dee