Following the Paris PDM recommendations, and (unusually) with the approval of the entire spectrum of PHP developers and users, Andi went to work on removing safe_mode from CVS HEAD this week. He got as far as the streams code before he hit a problem, and wrote to Sara (for help).

Sara agreed that it was in fact a bug, and admitted that she'd probably introduced this 'slight logic twist' when routing unlink() to use stream wrappers.

Andi thanked Sara for her analysis and asked her to keep an eye on his commits to ensure he didn't apply a wrong fix in the stream wrapper code. She did; he didn't. Andi went on to clean all trace of the safe_mode implementation from the rest of the PHP core and most of the core extensions, ably assisted by Ilia.

One of the longest-lingering, painful issues that PHP has had to deal with in the past has finally been laid to rest. Here's to a positive step forward to PHP6!