diff --git a/Sema/SemaChecking.cpp b/Sema/SemaChecking.cpp
index 76363c9..1dfb145 100644
--- a/Sema/SemaChecking.cpp
+++ b/Sema/SemaChecking.cpp
@@ -88,7 +88,7 @@
 /// CheckBuiltinCFStringArgument - Checks that the argument to the builtin
 /// CFString constructor is correct
 bool Sema::CheckBuiltinCFStringArgument(Expr* Arg) {
-  Arg = IgnoreParenCasts(Arg);
+  Arg = Arg->IgnoreParenCasts();
   
   StringLiteral *Literal = dyn_cast<StringLiteral>(Arg);
 
@@ -267,7 +267,7 @@
     return;
   }
   
-  Expr *OrigFormatExpr = IgnoreParenCasts(TheCall->getArg(format_idx));
+  Expr *OrigFormatExpr = TheCall->getArg(format_idx)->IgnoreParenCasts();
   
   // CHECK: format string is not a string literal.
   // 
@@ -527,7 +527,7 @@
 void
 Sema::CheckReturnStackAddr(Expr *RetValExp, QualType lhsType,
                            SourceLocation ReturnLoc) {
-  
+   
   // Perform checking for returned stack addresses.
   if (lhsType->isPointerType()) {
     if (DeclRefExpr *DR = EvalAddr(RetValExp))
diff --git a/Sema/SemaUtil.h b/Sema/SemaUtil.h
index 9be668b..35452b1 100644
--- a/Sema/SemaUtil.h
+++ b/Sema/SemaUtil.h
@@ -19,23 +19,9 @@
 
 namespace clang {
 
-/// Utility method to plow through parenthesis and casts.
-static inline Expr* IgnoreParenCasts(Expr* E) {
-  while(true) {
-    if (ParenExpr* P = dyn_cast<ParenExpr>(E))
-      E = P->getSubExpr();
-    else if (CastExpr* P = dyn_cast<CastExpr>(E))
-      E = P->getSubExpr();
-    else if (ImplicitCastExpr* P = dyn_cast<ImplicitCastExpr>(E))
-      E = P->getSubExpr();
-    else
-      return E;
-  }
-}
-
 /// Utility method to determine if a CallExpr is a call to a builtin.
 static inline bool isCallBuiltin(CallExpr* cexp) {
-  Expr* sub = IgnoreParenCasts(cexp->getCallee());
+  Expr* sub = cexp->getCallee()->IgnoreParenCasts();
   
   if (DeclRefExpr* E = dyn_cast<DeclRefExpr>(sub))
     if (E->getDecl()->getIdentifier()->getBuiltinID() > 0)
