diff --git a/org.eclipse.jdt.debug.tests/testprograms/BreakpointsLocation.java b/org.eclipse.jdt.debug.tests/testprograms/BreakpointsLocation.java
index afcd4ad..ab02200 100644
--- a/org.eclipse.jdt.debug.tests/testprograms/BreakpointsLocation.java
+++ b/org.eclipse.jdt.debug.tests/testprograms/BreakpointsLocation.java
@@ -72,5 +72,13 @@
 			12
 			;
 	}
+	
+	public static void testMethodWithInnerClass(Object type){
+		class StaticInnerClass{
+			protected StaticInnerClass(Object t){
+				System.out.println("test");
+			}
+		}
+	}
 
 }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointLocationVerificationTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointLocationVerificationTests.java
index 2822c8e..9c61a16 100755
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointLocationVerificationTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointLocationVerificationTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 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
@@ -57,7 +57,19 @@
 	 * @throws JavaModelException
 	 */
 	private void testLocation(int lineToTry, int expectedLineNumber, String expectedTypeName) throws JavaModelException {
-		IType type= getJavaProject().findType(expectedTypeName);
+		testLocation(lineToTry, expectedLineNumber, expectedTypeName, expectedTypeName);
+	}
+	
+	/**
+	 * Tests that the predefined location is locatable in the specified type
+	 * @param lineToTry
+	 * @param expectedLineNumber
+	 * @param baseTypeName
+	 * @param expectedTypeName
+	 * @throws JavaModelException
+	 */
+	private void testLocation(int lineToTry, int expectedLineNumber, String baseTypeName, String expectedTypeName) throws JavaModelException {
+		IType type= getJavaProject().findType(baseTypeName);
 		assertNotNull("Cannot find type", type);
 		CompilationUnit compilationUnit= parseCompilationUnit(type.getCompilationUnit());
 		ValidBreakpointLocationLocator locator= new ValidBreakpointLocationLocator(compilationUnit, lineToTry, true, false);
@@ -114,7 +126,7 @@
 	 */
 	public void testLineAfterAllCode() throws Exception {
 		// ********* this test need to be updated every time BreakpointsLocation.java is modified *************
-		testLocation(74, -1, "BreakpointsLocation");
+		testLocation(82, -1, "BreakpointsLocation");
 		// ******************************
 	}
 	
@@ -205,6 +217,14 @@
 	public void testLineLitteral2() throws Exception {
 		testLocation(55, 55, "BreakpointsLocation");
 	}
+	
+	/**
+	 * Tests a specific breakpoint location
+	 * @throws Exception
+	 */
+	public void testInnerStaticClass() throws Exception {
+		testLocation(79, 79, "BreakpointsLocation", "BreakpointsLocation.StaticInnerClass");
+	}
 
 	/**
 	 * Tests that an specific field is locatable in a specific type at a given offset and line
