I’ve just installed 1.5 under IIS and hit the exact same problem. The fix is to edit wp-blog-header.php. It is missing a test for EDIT.PHP from an inspection of PATH_INFO and wrongly reporting a 404 back to IIS.
In wp-blog-header.php change this block starting at line 16:
if ((isset($_GET['error']) && $_GET['error'] == '404') ||
((! empty($_SERVER['PATH_INFO'])) &&
('/' != $_SERVER['PATH_INFO']) &&
(false === strpos($_SERVER['PATH_INFO'], 'index.php'))
)) {
and add in this extra line:
&& (false === strpos($_SERVER['PATH_INFO'], 'edit.php'))
so that the whole thing looks like this (spaces are not important):
if ((isset($_GET['error']) && $_GET['error'] == '404') ||
((! empty($_SERVER['PATH_INFO'])) &&
('/' != $_SERVER['PATH_INFO']) &&
(false === strpos($_SERVER['PATH_INFO'], 'index.php'))
&& (false === strpos($_SERVER['PATH_INFO'], 'edit.php'))
)) {
Refresh the edit page and it should all be groovy.