This works ok for me in xl2003--but I've never tested it in xl2007.
Option Explicit
Sub testme()
Dim iCtr As Long
Dim MRUMax As Long
Dim TestStr As String
With Application.RecentFiles
MRUMax = .Maximum
For iCtr = .Count To 1 Step -1
TestStr = ""
On Error Resume Next
TestStr = Dir(.Item(iCtr).Path)
On Error GoTo 0
If TestStr = "" Then
.Item(iCtr).Delete
End If
Next iCtr
.Maximum = MRUMax
End With
Sub toggle_MRU()
With Application
.RecentFiles.Maximum = 1 'leaves current workbook on list
End With
With Application
.RecentFiles.Maximum = 5
End With
End Sub