diff --git a/lib/Sema/SemaOverload.cpp b/lib/Sema/SemaOverload.cpp
index 5e3ec3f..3671711 100644
--- a/lib/Sema/SemaOverload.cpp
+++ b/lib/Sema/SemaOverload.cpp
@@ -846,6 +846,16 @@
     return true;
   } 
 
+  // Objective C++: Allow conversions between the Objective-C "id" and
+  // "Class", in either direction.
+  if ((Context.isObjCIdType(FromPointeeType) && 
+       Context.isObjCClassType(ToPointeeType)) ||
+      (Context.isObjCClassType(FromPointeeType) &&
+       Context.isObjCIdType(ToPointeeType))) {
+    ConvertedType = ToType;
+    return true;
+  }
+
   return false;
 }
 
@@ -864,6 +874,16 @@
                       /*DetectVirtual=*/false);
       QualType FromPointeeType = FromPtrType->getPointeeType(),
                ToPointeeType   = ToPtrType->getPointeeType();
+
+      // Objective-C++ conversions are always okay.
+      // FIXME: We should have a different class of conversions for
+      // the Objective-C++ implicit conversions.
+      if (Context.isObjCIdType(FromPointeeType) || 
+          Context.isObjCIdType(ToPointeeType) ||
+          Context.isObjCClassType(FromPointeeType) ||
+          Context.isObjCClassType(ToPointeeType))
+        return false;
+
       if (FromPointeeType->isRecordType() &&
           ToPointeeType->isRecordType()) {
         // We must have a derived-to-base conversion. Check an
diff --git a/test/SemaObjCXX/overload.mm b/test/SemaObjCXX/overload.mm
index 01ca1c1..16a36fc 100644
--- a/test/SemaObjCXX/overload.mm
+++ b/test/SemaObjCXX/overload.mm
@@ -1,4 +1,16 @@
 // RUN: clang -fsyntax-only -verify %s
+@interface Foo
+@end
+
+@implementation Foo
+
+void func(id);
+
++ zone {
+ func(self);
+ return self;
+}
+
 @protocol P0
 @end
 
