diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/NewDetailFormatterAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/NewDetailFormatterAction.java
index d0f6091..61b53e0 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/NewDetailFormatterAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/NewDetailFormatterAction.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * Copyright (c) 2000, 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -31,7 +31,7 @@
 	 */
 	public void run(IAction action) {
 		IStructuredSelection selection= getCurrentSelection();
-		if (selection.size() != 1) {
+		if (selection == null || selection.size() != 1) {
 			return;
 		}
 		Object element= selection.getFirstElement();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ObjectActionDelegate.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ObjectActionDelegate.java
index 755cb3c..85acf07 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ObjectActionDelegate.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ObjectActionDelegate.java
@@ -48,8 +48,9 @@
 	}
 	
 	/**
-	 * Returns the currently selected item(s) form the current workbench page
-	 * @return the currently selected item(s)
+	 * Returns the currently selected item(s) from the current workbench page or <code>null</code>
+	 * if the current active page could not be resolved.
+	 * @return the currently selected item(s) or <code>null</code>
 	 */
 	protected IStructuredSelection getCurrentSelection() {
 		IWorkbenchPage page = JDIDebugUIPlugin.getActivePage();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RemoveDetailFormatterAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RemoveDetailFormatterAction.java
index 045e951..4f5996d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RemoveDetailFormatterAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/RemoveDetailFormatterAction.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * Copyright (c) 2000, 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -28,7 +28,7 @@
 	 */
 	public void run(IAction action) {
 		IStructuredSelection selection= getCurrentSelection();
-		if (selection.size() != 1) {
+		if (selection == null || selection.size() != 1) {
 			return;
 		}
 		Object element= selection.getFirstElement();
