I have been working on an input server filter for ScreenSaver. The general gist of it is that we add a BMessageRunner to the input_server. It's job is to post a message to the Input Server every N seconds (where N is what you set in the screen saver preferences app). A BMessageFilter catches that message and calls a function checking to see if keys were hit and, if not, to invoke screensaver. Now, I am sure that I have done something dumb... But my problem is that when I create a BMessageFilter and call be_app->AddFilter(filter); At that point, the Input Server crashes. So, obviously, I can't do a whole lot of debugging. I can verify that be_app seems to be valid (and it should be). I can't think of any reason that this should fail. Here is the relevant code: SSISFilter::SSISFilter() : enabled(false) { pref.LoadSettings(); blank=pref.GetBlankCorner(); keep=pref.GetNeverBlankCorner(); timeMsg=new BMessage(timeUp); runner=new BMessageRunner(be_app_messenger, timeMsg, pref.BlankTime() *1000000,-1); filter=new BMessageFilter(timeUp,timeUpFunc); be_app->AddFilter(filter); } I am open to thoughts and ideas...