Index: src/org/pwsafe/passwordsafeswt/PasswordSafeJFace.java
===================================================================
--- src/org/pwsafe/passwordsafeswt/PasswordSafeJFace.java	(revision 454)
+++ src/org/pwsafe/passwordsafeswt/PasswordSafeJFace.java	(working copy)
@@ -31,11 +31,7 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.StatusLineManager;
-import org.eclipse.jface.action.ToolBarManager;
+import org.eclipse.jface.action.*;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.preference.JFacePreferences;
 import org.eclipse.jface.resource.JFaceResources;
@@ -76,33 +72,7 @@
 import org.pwsafe.lib.file.PwsRecord;
 import org.pwsafe.lib.file.PwsRecordV1;
 import org.pwsafe.lib.file.PwsRecordV2;
-import org.pwsafe.passwordsafeswt.action.AboutAction;
-import org.pwsafe.passwordsafeswt.action.AddRecordAction;
-import org.pwsafe.passwordsafeswt.action.ChangeSafeCombinationAction;
-import org.pwsafe.passwordsafeswt.action.ClearClipboardAction;
-import org.pwsafe.passwordsafeswt.action.CopyPasswordAction;
-import org.pwsafe.passwordsafeswt.action.CopyURLAction;
-import org.pwsafe.passwordsafeswt.action.CopyUsernameAction;
-import org.pwsafe.passwordsafeswt.action.DeleteRecordAction;
-import org.pwsafe.passwordsafeswt.action.EditRecordAction;
-import org.pwsafe.passwordsafeswt.action.ExitAppAction;
-import org.pwsafe.passwordsafeswt.action.ExportToTextAction;
-import org.pwsafe.passwordsafeswt.action.ExportToXMLAction;
-import org.pwsafe.passwordsafeswt.action.HelpAction;
-import org.pwsafe.passwordsafeswt.action.ImportFromTextAction;
-import org.pwsafe.passwordsafeswt.action.ImportFromXMLAction;
-import org.pwsafe.passwordsafeswt.action.LockDbAction;
-import org.pwsafe.passwordsafeswt.action.MRUFileAction;
-import org.pwsafe.passwordsafeswt.action.NewFileAction;
-import org.pwsafe.passwordsafeswt.action.OpenFileAction;
-import org.pwsafe.passwordsafeswt.action.OpenUrlAction;
-import org.pwsafe.passwordsafeswt.action.OptionsAction;
-import org.pwsafe.passwordsafeswt.action.SaveFileAction;
-import org.pwsafe.passwordsafeswt.action.SaveFileAsAction;
-import org.pwsafe.passwordsafeswt.action.UnlockDbAction;
-import org.pwsafe.passwordsafeswt.action.ViewAsListAction;
-import org.pwsafe.passwordsafeswt.action.ViewAsTreeAction;
-import org.pwsafe.passwordsafeswt.action.VisitPasswordSafeWebsiteAction;
+import org.pwsafe.passwordsafeswt.action.*;
 import org.pwsafe.passwordsafeswt.dialog.StartupDialog;
 import org.pwsafe.passwordsafeswt.dto.PwsEntryDTO;
 import org.pwsafe.passwordsafeswt.listener.TableColumnSelectionAdaptor;
@@ -148,6 +118,7 @@
 	private EditRecordAction editRecordAction;
 	private AddRecordAction addRecordAction;
 	private ClearClipboardAction clearClipboardAction;
+	private ClearMRUFilesAction clearMRUFilesAction;
 	private CopyPasswordAction copyPasswordAction;
 	private CopyUsernameAction copyUsernameAction;
 	private CopyURLAction copyURLAction;
@@ -175,6 +146,7 @@
 
 	public static final String APP_NAME = "PasswordSafeSWT"; //$NON-NLS-1$
 	public static final String JPW_ICON = "jpwIcon";
+    private static final String FILE_MENU = "FileMenu";
 
 	private static PasswordSafeJFace app;
 
@@ -295,6 +267,7 @@
 		copyPasswordAction = new CopyPasswordAction();
 		copyURLAction = new CopyURLAction();
 		clearClipboardAction = new ClearClipboardAction();
+		clearMRUFilesAction = new ClearMRUFilesAction();
 		addRecordAction = new AddRecordAction();
 		editRecordAction = new EditRecordAction();
 		deleteRecordAction = new DeleteRecordAction();
@@ -319,24 +292,47 @@
 	protected MenuManager createMenuManager() {
 		MenuManager result = new MenuManager(Messages.getString("PasswordSafeJFace.Menu.Menu")); //$NON-NLS-1$
 
-		final MenuManager menuManagerFile = new MenuManager(Messages.getString("PasswordSafeJFace.Menu.File")); //$NON-NLS-1$
-		result.add(menuManagerFile);
+        result.add( createFileMenuManager());
+        result.add( createEditMenuManager());
+        result.add( createViewMenuManager());
+        result.add( createManageMenuManager());
+        result.add( createHelpMenuManager());
 
-		menuManagerFile.add(newFileAction);
-		menuManagerFile.add(openFileAction);
-		menuManagerFile.add(new Separator());
+		return result;
+	}
 
-		String[] mruFiles = UserPreferences.getInstance().getMRUFiles();
-		if (mruFiles != null && mruFiles.length > 0) {
-			for (int i = 0; i < mruFiles.length; i++) {
-				String fileName = mruFiles[i];
-				String menuItem = "&" + (i + 1) + " " + new File(fileName).getName(); //$NON-NLS-1$ //$NON-NLS-2$
-				IAction nextMRUAction = new MRUFileAction(fileName, menuItem);
-				menuManagerFile.add(nextMRUAction);
-			}
-			menuManagerFile.add(new Separator());
-		}
+    public void updateFileMenu() {
+        IContributionItem findMenu = getMenuBarManager().find(FILE_MENU);
+        ((IMenuManager)findMenu).removeAll();
+        populateFileMenu((IMenuManager)findMenu);
+    }
 
+    private IMenuManager createFileMenuManager() {
+        final MenuManager menuManagerFile = new MenuManager(Messages.getString("PasswordSafeJFace.Menu.File"), FILE_MENU); //$NON-NLS-1$
+
+        populateFileMenu(menuManagerFile);
+
+        return menuManagerFile;
+    }
+
+    private void populateFileMenu(IMenuManager menuManagerFile) {
+        menuManagerFile.add(newFileAction);
+        menuManagerFile.add(openFileAction);
+        menuManagerFile.add(new Separator());
+
+        String[] mruFiles = UserPreferences.getInstance().getMRUFiles();
+        if (mruFiles != null && mruFiles.length > 0) {
+            for (int i = 0; i < mruFiles.length; i++) {
+                String fileName = mruFiles[i];
+                String menuItem = "&" + (i + 1) + " " + new File(fileName).getName(); //$NON-NLS-1$ //$NON-NLS-2$
+                IAction nextMRUAction = new MRUFileAction(fileName, menuItem);
+                menuManagerFile.add(nextMRUAction);
+            }
+            menuManagerFile.add(new Separator());
+            menuManagerFile.add(clearMRUFilesAction);
+            menuManagerFile.add(new Separator());
+        }
+
 		menuManagerFile.add(saveFileAction);
 		menuManagerFile.add(saveFileAsAction);
 		menuManagerFile.add(new Separator());
@@ -355,9 +351,10 @@
 
 		menuManagerFile.add(new Separator());
 		menuManagerFile.add(exitAppAction);
+    }
 
-		final MenuManager menuManagerEdit = new MenuManager(Messages.getString("PasswordSafeJFace.Menu.Edit")); //$NON-NLS-1$
-		result.add(menuManagerEdit);
+    private IMenuManager createEditMenuManager() {
+        final MenuManager menuManagerEdit = new MenuManager(Messages.getString("PasswordSafeJFace.Menu.Edit")); //$NON-NLS-1$
 
 		menuManagerEdit.add(addRecordAction);
 		menuManagerEdit.add(editRecordAction);
@@ -369,30 +366,39 @@
 		menuManagerEdit.add(openUrlAction);		
 		menuManagerEdit.add(clearClipboardAction);
 
-		final MenuManager menuManagerView = new MenuManager(Messages.getString("PasswordSafeJFace.Menu.View")); //$NON-NLS-1$
-		result.add(menuManagerView);
+        return menuManagerEdit;
+    }
 
+    private IMenuManager createViewMenuManager() {
+        final MenuManager menuManagerView = new MenuManager(Messages.getString("PasswordSafeJFace.Menu.View")); //$NON-NLS-1$
+
 		menuManagerView.add(viewAsListAction);
 		menuManagerView.add(viewAsTreeAction);
 
-		final MenuManager menuManagerManage = new MenuManager(Messages.getString("PasswordSafeJFace.Menu.Manage")); //$NON-NLS-1$
-		result.add(menuManagerManage);
+        return menuManagerView;
+    }
 
+    private IMenuManager createManageMenuManager() {
+        final MenuManager menuManagerManage = new MenuManager(Messages.getString("PasswordSafeJFace.Menu.Manage")); //$NON-NLS-1$
+
 		menuManagerManage.add(changeSafeCombinationAction);
 		menuManagerManage.add(new Separator());
 		menuManagerManage.add(optionsAction);
 
-		final MenuManager menuManagerHelp = new MenuManager(Messages.getString("PasswordSafeJFace.Menu.Help")); //$NON-NLS-1$
-		result.add(menuManagerHelp);
+        return menuManagerManage;
+    }
 
+    private IMenuManager createHelpMenuManager() {
+        final MenuManager menuManagerHelp = new MenuManager(Messages.getString("PasswordSafeJFace.Menu.Help")); //$NON-NLS-1$
+
 		menuManagerHelp.add(helpAction);
 		menuManagerHelp.add(new Separator());
 		menuManagerHelp.add(visitPasswordSafeWebsiteAction);
 		menuManagerHelp.add(new Separator());
 		menuManagerHelp.add(aboutAction);
 
-		return result;
-	}
+        return menuManagerHelp;
+    }
 
 	/**
 	 * Creates the popup (right click) menu for the given control.
@@ -564,8 +570,10 @@
 		getShell().setText(PasswordSafeJFace.APP_NAME + " - " + fileName); //$NON-NLS-1$
 		setPwsFile(file);
 		setReadOnly(forReadOnly);
-		if (true) // TODO (!openedFromMRU)
+		if (true) { // TODO (!openedFromMRU)
 			UserPreferences.getInstance().setMostRecentFilename(fileName);
+            updateFileMenu();
+        }
 	}
 
 	/**
Index: src/org/pwsafe/passwordsafeswt/action/messages_de.properties
===================================================================
--- src/org/pwsafe/passwordsafeswt/action/messages_de.properties	(revision 454)
+++ src/org/pwsafe/passwordsafeswt/action/messages_de.properties	(working copy)
@@ -9,6 +9,9 @@
 ClearClipboardAction.Label   = Zwischenablage l\u00F6schen
 ClearClipboardAction.Tooltip = Zwischenablage mit Leerzeichen \u00FCberschreiben
 
+ClearFileList.Label = &Clear file list
+ClearFileList.Tooltip = Clears the list of recent files from the File menu
+
 CopyPasswordAction.Label   = Password kopieren@Ctrl+C
 CopyPasswordAction.Tooltip = Kopiert das Passwort in die Zwischenablage
 
Index: src/org/pwsafe/passwordsafeswt/action/messages.properties
===================================================================
--- src/org/pwsafe/passwordsafeswt/action/messages.properties	(revision 454)
+++ src/org/pwsafe/passwordsafeswt/action/messages.properties	(working copy)
@@ -9,6 +9,9 @@
 ClearClipboardAction.Label   = Clear Clipboard
 ClearClipboardAction.Tooltip = Clear Clipboard
 
+ClearFileList.Label = &Clear file list
+ClearFileList.Tooltip = Clears the list of recent files from the File menu
+
 CopyPasswordAction.Label   = Copy Password@Ctrl+C
 CopyPasswordAction.Tooltip = Copy Password To Clipboard
 
Index: src/org/pwsafe/passwordsafeswt/util/UserPreferences.java
===================================================================
--- src/org/pwsafe/passwordsafeswt/util/UserPreferences.java	(revision 454)
+++ src/org/pwsafe/passwordsafeswt/util/UserPreferences.java	(working copy)
@@ -166,6 +166,20 @@
 		return (String[]) allFiles.toArray(new String[0]);
 
 	}
+
+    public void clearMRUFiles() {
+        for (int i = 0; i <= MAX_MRU; i++) {
+            // un-intuitively, default is "not present"
+            prefStore.setToDefault(MRU + i);
+        }
+
+        try {
+            savePreferences();
+        } catch (IOException e) {
+            // todo: better error handling
+            e.printStackTrace();
+        }
+    }
     
     /**
      * Convenience routine for getting most recently opened file.
