diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java
index 748f7c8bdc0b..a544a9c263fc 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java
@@ -1430,6 +1430,7 @@ public class GroovyAnnotator extends GroovyElementVisitor {
private boolean checkAnnotationAttributeValue(GrAnnotationMemberValue value, PsiElement toHighlight) {
if (value instanceof GrLiteral) return false;
if (value instanceof GrClosableBlock) return false;
+ if (value instanceof GrAnnotation) return false;
if (value instanceof GrReferenceExpression) {
PsiElement resolved = ((GrReferenceExpression)value).resolve();
diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GroovyHighlightingTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GroovyHighlightingTest.groovy
index 92331f6b462f..23ac9364cf50 100644
--- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GroovyHighlightingTest.groovy
+++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GroovyHighlightingTest.groovy
@@ -1600,4 +1600,22 @@ def groovy2 = '''print 'abc\\\\' '''
""")
}
+
+ void testAnnotationAsAnnotationValue() {
+ testHighlighting('''\
+@interface A {}
+@interface B {
+ A[] foo()
+}
+@interface C {
+ A foo()
+}
+
+@B(foo = @A)
+@B(foo = [@A])
+@C(foo = @A)
+@C(foo = 2)
+def foo
+''')
+ }
}
\ No newline at end of file