diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index d3d3d35..2721bb8 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -1688,6 +1688,17 @@
     // Promote the arguments (C99 6.5.2.2p7).
     for (unsigned i = NumArgsInProto; i != NumArgs; i++) {
       Expr *Arg = Args[i];
+      if (!Arg->getType()->isPODType()) {
+        int CallType = 0;
+        if (Fn->getType()->isBlockPointerType())
+          CallType = 1; // Block
+        else if (isa<MemberExpr>(Fn))
+          CallType = 2;
+        
+        Diag(Arg->getLocStart(), 
+             diag::warn_cannot_pass_non_pod_arg_to_vararg) << 
+        Arg->getType() << CallType;
+      }
       DefaultArgumentPromotion(Arg);
       Call->setArg(i, Arg);
     }
diff --git a/lib/Sema/SemaExprObjC.cpp b/lib/Sema/SemaExprObjC.cpp
index 415bc94..a73f386 100644
--- a/lib/Sema/SemaExprObjC.cpp
+++ b/lib/Sema/SemaExprObjC.cpp
@@ -156,8 +156,15 @@
 
   // Promote additional arguments to variadic methods.
   if (Method->isVariadic()) {
-    for (unsigned i = NumNamedArgs; i < NumArgs; ++i)
+    for (unsigned i = NumNamedArgs; i < NumArgs; ++i) {
+      if (!Args[i]->getType()->isPODType()) {
+        Diag(Args[i]->getLocStart(), 
+             diag::warn_cannot_pass_non_pod_arg_to_vararg) << 
+        Args[i]->getType() << 2; // Method
+      }
+      
       DefaultArgumentPromotion(Args[i]);
+    }
   } else {
     // Check for extra arguments to non-variadic methods.
     if (NumArgs != NumNamedArgs) {
diff --git a/lib/Sema/SemaOverload.cpp b/lib/Sema/SemaOverload.cpp
index c66db17..d74a5d5 100644
--- a/lib/Sema/SemaOverload.cpp
+++ b/lib/Sema/SemaOverload.cpp
@@ -3576,6 +3576,13 @@
     // Promote the arguments (C99 6.5.2.2p7).
     for (unsigned i = NumArgsInProto; i != NumArgs; i++) {
       Expr *Arg = Args[i];
+        
+      if (!Arg->getType()->isPODType()) {
+        Diag(Arg->getLocStart(), 
+             diag::warn_cannot_pass_non_pod_arg_to_vararg) << 
+        Arg->getType() << 2; // Method
+      }
+
       DefaultArgumentPromotion(Arg);
       TheCall->setArg(i + 1, Arg);
     }
