diff --git a/test/CodeGenObjC/auto-property-synthesize-protocol.m b/test/CodeGenObjC/auto-property-synthesize-protocol.m
index b34fcd9756f1fbe8d954cad576512e56b0659ee2..49a4037e264534b6c68b56fadda68ae08c5215b2 100644
--- a/test/CodeGenObjC/auto-property-synthesize-protocol.m
+++ b/test/CodeGenObjC/auto-property-synthesize-protocol.m
@@ -1,31 +1,37 @@
 // RUN: %clang_cc1 -triple x86_64-apple-darwin -fobjc-default-synthesize-properties -emit-llvm  %s -o - | FileCheck %s
 // rdar://10907410
-// XFAIL: *
 
 @protocol P
 @optional
 @property int auto_opt_window;
 @property int no_auto_opt_window;
+@end
+
+@interface I<P>
+@property int auto_opt_window;
+@end
 
-@required
+@implementation I
+@end
+
+@protocol P1
 @property int auto_req_window;
 @property int no_auto_req_window; // expected-note {{property declared here}}
 @end
 
-@interface I<P>
-@property int auto_opt_window;
+@interface I1<P1>
 @property int auto_req_window;
 @end
 
-@implementation I // expected-warning {{auto property synthesis will not synthesize property declared in a protocol}}
+@implementation I1 // expected-warning {{auto property synthesis will not synthesize property declared in a protocol}}
 @end
 
-// CHECK: define internal i32 @"\01-[I auto_req_window]"(
-// CHECK: define internal void @"\01-[I setAuto_req_window:]"(
 // CHECK: define internal i32 @"\01-[I auto_opt_window]"(
 // CHECK: define internal void @"\01-[I setAuto_opt_window:]"(
+// CHECK: define internal i32 @"\01-[I1 auto_req_window]"(
+// CHECK: define internal void @"\01-[I1 setAuto_req_window:]"(
 
-// CHECK-NOT: define internal i32 @"\01-[I no_auto_opt_window]"(
-// CHECK-NOT: define internal void @"\01-[I setNo_auto_opt_window:]"(
+// CHECK-NOT: define internal i32 @"\01-[I1 no_auto_opt_window]"(
+// CHECK-NOT: define internal void @"\01-[I1 setNo_auto_opt_window:]"(
 // CHECK-NOT: define internal i32 @"\01-[I no_auto_req_window]"(
 // CHECK-NOT: define internal void @"\01-[I setNo_auto_req_window:]"(