diff --git a/plugins/org.eclipse.dltk.javascript.core/src/org/eclipse/dltk/javascript/internal/search/JavaScriptMatchLocatorVisitor.java b/plugins/org.eclipse.dltk.javascript.core/src/org/eclipse/dltk/javascript/internal/search/JavaScriptMatchLocatorVisitor.java
index eea535b..1cc568d 100644
--- a/plugins/org.eclipse.dltk.javascript.core/src/org/eclipse/dltk/javascript/internal/search/JavaScriptMatchLocatorVisitor.java
+++ b/plugins/org.eclipse.dltk.javascript.core/src/org/eclipse/dltk/javascript/internal/search/JavaScriptMatchLocatorVisitor.java
@@ -321,7 +321,8 @@
 			} else if (part instanceof PropertyInitializer) {
 				final PropertyInitializer pi = (PropertyInitializer) part;
 				// TODO (alex) handle jsdoc
-				if (pi.getValue() instanceof FunctionStatement) {
+				if (pi.getValue() instanceof FunctionStatement
+						&& pi.getName() instanceof Identifier) {
 					createFunctionDeclaration(
 							(FunctionStatement) pi.getValue(),
 							(Identifier) pi.getName());
diff --git a/tests/org.eclipse.dltk.javascript.core.tests/src/org/eclipse/dltk/javascript/core/tests/search/SearchDeclarationTests.java b/tests/org.eclipse.dltk.javascript.core.tests/src/org/eclipse/dltk/javascript/core/tests/search/SearchDeclarationTests.java
index f03f18d..24959c3 100644
--- a/tests/org.eclipse.dltk.javascript.core.tests/src/org/eclipse/dltk/javascript/core/tests/search/SearchDeclarationTests.java
+++ b/tests/org.eclipse.dltk.javascript.core.tests/src/org/eclipse/dltk/javascript/core/tests/search/SearchDeclarationTests.java
@@ -63,6 +63,19 @@
 		assertEquals(IModelElement.SOURCE_MODULE, parent.getElementType());
 		assertEquals("a.js", parent.getElementName());
 	}
+	
+
+	@Test
+	public void testVartextFormatters() throws CoreException {
+		final TestSearchResults results = PROJECT.search("textFormatters", FIELD,
+				DECLARATIONS);
+		assertEquals(1, results.size());
+		final IModelElement method = results.locate(IField.class, "textFormatters");
+		final IModelElement parent = method.getParent();
+		assertEquals(IModelElement.SOURCE_MODULE, parent.getElementType());
+		assertEquals("selection2.js", parent.getElementName());
+	}
+
 
 	@Test
 	public void testVarB() throws CoreException {
diff --git a/tests/org.eclipse.dltk.javascript.core.tests/workspace/search/src/selection2.js b/tests/org.eclipse.dltk.javascript.core.tests/workspace/search/src/selection2.js
new file mode 100644
index 0000000..3141017
--- /dev/null
+++ b/tests/org.eclipse.dltk.javascript.core.tests/workspace/search/src/selection2.js
@@ -0,0 +1,15 @@
+var textFormatters = {
+		1: function(node) {
+			return 'Deleting deprecated class';
+		},
+		2: function(node) {
+			return 'Error deleting deprecated class';
+		},
+		3: function(node) {
+			return 'Skipping deprecated class';
+		}
+	};
+	
+function textFormattersTest() {
+	textFormatters[1];
+}
\ No newline at end of file
