Finding out what file was called immediately before error
If you are tracking down a weird error, editing core is perfectly acceptable.


Make sure everything is in your RCS.
Edit includes/menu.inc
Place a print_r(debug_backtrace()) near line 635, preferable at the top of _menu_check_access().  Alse print_r() the arguments.
Trigger the problem.
Figure out what happened.
Revert the site to the checked in RCS version.


My guess is you are getting weird path, and the argument is wonky for your access check.  In other words, you are trying to access check something that should really 404.