Should fix bug#358106
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlJavaCompletionProposalComputer.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlJavaCompletionProposalComputer.java
index afba05f..0bb919c 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlJavaCompletionProposalComputer.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlJavaCompletionProposalComputer.java
@@ -27,6 +27,7 @@
 import org.eclipse.jdt.core.dom.Annotation;
 import org.eclipse.jdt.core.dom.ArrayInitializer;
 import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jdt.core.dom.Expression;
 import org.eclipse.jdt.core.dom.IExtendedModifier;
 import org.eclipse.jdt.core.dom.MemberValuePair;
 import org.eclipse.jdt.core.dom.NormalAnnotation;
@@ -282,11 +283,22 @@
 						// @NamedQueries({...})
 						if (annotation.isSingleMemberAnnotation()) {
 							SingleMemberAnnotation singleMemberAnnotation = (SingleMemberAnnotation) annotation;
-							ArrayInitializer array = (ArrayInitializer) singleMemberAnnotation.getValue();
+							Expression value = singleMemberAnnotation.getValue();
 
-							for (org.eclipse.jdt.core.dom.Expression expression : (List<org.eclipse.jdt.core.dom.Expression>) array.expressions()) {
-								if (isInsideNode(expression, tokenStart, tokenEnd)) {
-									return retrieveQuery((NormalAnnotation) expression, tokenStart, tokenEnd);
+							if (value instanceof ArrayInitializer) {
+								ArrayInitializer array = (ArrayInitializer) singleMemberAnnotation.getValue();
+
+								for (Expression expression : (List<Expression>) array.expressions()) {
+									if (isInsideNode(expression, tokenStart, tokenEnd)) {
+										return retrieveQuery((NormalAnnotation) expression, tokenStart, tokenEnd);
+									}
+								}
+							}
+							else {
+								NormalAnnotation childAnnotation = (NormalAnnotation) value;
+
+								if (isInsideNode(childAnnotation, tokenStart, tokenEnd)) {
+									return retrieveQuery(childAnnotation, tokenStart, tokenEnd);
 								}
 							}
 						}