diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index 66f33c1..49bba1d 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -600,6 +600,9 @@
     if (D == 0 || D->isDefinedOutsideFunctionOrMethod()) {
       ObjCInterfaceDecl *IFace = getCurMethodDecl()->getClassInterface();
       if (ObjCIvarDecl *IV = IFace->lookupInstanceVariable(II)) {
+        // Check if referencing a field with __attribute__((deprecated)).
+        DiagnoseUseOfDeprecatedDecl(IV, Loc);
+
         // FIXME: This should use a new expr for a direct reference, don't turn
         // this into Self->ivar, just return a BareIVarExpr or something.
         IdentifierInfo &II = Context.Idents.get("self");
@@ -771,6 +774,9 @@
   DiagnoseUseOfDeprecatedDecl(VD, Loc);
   
   if (VarDecl *Var = dyn_cast<VarDecl>(VD)) {
+    // Warn about constructs like:
+    //   if (void *X = foo()) { ... } else { X }.
+    // In the else block, the pointer is always false.
     if (Var->isDeclaredInCondition() && Var->getType()->isScalarType()) {
       Scope *CheckS = S;
       while (CheckS) {
@@ -1654,6 +1660,9 @@
       if (IV->isInvalidDecl())
         return ExprError();
       
+      // Check if referencing a field with __attribute__((deprecated)).
+      DiagnoseUseOfDeprecatedDecl(IV, MemberLoc);
+      
       ObjCIvarRefExpr *MRef= new (Context) ObjCIvarRefExpr(IV, IV->getType(), 
                                                  MemberLoc, BaseExpr,
                                                  OpKind == tok::arrow);
diff --git a/test/Sema/attr-deprecated.c b/test/Sema/attr-deprecated.c
index f4ec0bc..f7c96b0 100644
--- a/test/Sema/attr-deprecated.c
+++ b/test/Sema/attr-deprecated.c
@@ -40,3 +40,4 @@
 void test1(struct foo *F) {
   ++F->x;  // expected-warning {{'x' is deprecated}}
 }
+
diff --git a/test/SemaObjC/attr-deprecated.m b/test/SemaObjC/attr-deprecated.m
index d46503e..767206f 100644
--- a/test/SemaObjC/attr-deprecated.m
+++ b/test/SemaObjC/attr-deprecated.m
@@ -1,6 +1,8 @@
 // RUN: clang %s -fsyntax-only -verify
 
-@interface A
+@interface A {
+  int X __attribute__((deprecated));
+}
 + (void)F __attribute__((deprecated));
 - (void)f __attribute__((deprecated));
 @end
@@ -13,6 +15,8 @@
 
 - (void)g
 {
+  X++;        // expected-warning{{'X' is deprecated}}
+  self->X++;  // expected-warning{{'X' is deprecated}}
   [self f]; // expected-warning{{'f' is deprecated}}
 }
 
