diff --git a/lib/Sema/SemaChecking.cpp b/lib/Sema/SemaChecking.cpp
index 4e2e9c7..5db7038 100644
--- a/lib/Sema/SemaChecking.cpp
+++ b/lib/Sema/SemaChecking.cpp
@@ -1280,14 +1280,25 @@
   // format specifier.
   const Expr *Ex = getDataArg(NumConversions);
   const analyze_printf::ArgTypeResult &ATR = FS.getArgType(S.Context);
-    
+  
   if (const QualType *T = ATR.getSpecificType()) {
     if (!MatchType(*T, Ex->getType(), true)) {
-      S.Diag(getLocationOfByte(CS.getStart()),
-             diag::warn_printf_conversion_argument_type_mismatch)
-        << *T << Ex->getType()
-        << getFormatSpecifierRange(startSpecifier, specifierLen)
-        << Ex->getSourceRange();
+      // Check if we didn't match because of an implicit cast from a 'char'
+      // or 'short' to an 'int'.  This is done because printf is a varargs
+      // function.
+      bool hasError = true;      
+      if (const ImplicitCastExpr *ICE = dyn_cast<ImplicitCastExpr>(Ex))
+        if (ICE->getType() == S.Context.IntTy) {
+          Ex = ICE->getSubExpr();
+          hasError = !MatchType(*T, Ex->getType(), true);
+        }
+      
+      if (hasError)            
+        S.Diag(getLocationOfByte(CS.getStart()),
+               diag::warn_printf_conversion_argument_type_mismatch)
+          << *T << Ex->getType()
+          << getFormatSpecifierRange(startSpecifier, specifierLen)
+          << Ex->getSourceRange();
     }
     return true;
   }
