I'm also having problems with this. The options processing throws exceptions way too generously and early, resulting in "Unknown option specified: X" for any undefined options. I think it should process what it can and pass any unhandled options directly to the overridden main(ArgVec const&) method. The library shouldn't swallow up the unhandled options and die. What if you want to pass options through to some subprocess (like I currently want to)? I tested this with both the Application and ServerApplication classes, and the behavior is the same in both in the 1.5-dev code.