diff --git a/lib/Analysis/GRExprEngine.cpp b/lib/Analysis/GRExprEngine.cpp
index 21fe3da..30a83e7 100644
--- a/lib/Analysis/GRExprEngine.cpp
+++ b/lib/Analysis/GRExprEngine.cpp
@@ -1318,9 +1318,9 @@
 }  
 
 void GRExprEngine::VisitObjCMessageExprArgHelper(ObjCMessageExpr* ME,
-                                                 ObjCMessageExpr::arg_iterator AI,
-                                                 ObjCMessageExpr::arg_iterator AE,
-                                                 NodeTy* Pred, NodeSet& Dst) {
+                                              ObjCMessageExpr::arg_iterator AI,
+                                              ObjCMessageExpr::arg_iterator AE,
+                                              NodeTy* Pred, NodeSet& Dst) {
   if (AI == AE) {
     
     // Process the receiver.
@@ -1477,7 +1477,7 @@
   QualType T = CastE->getType();
   QualType ExTy = Ex->getType();
 
-  if (const ExplicitCastExpr *ExCast = dyn_cast_or_null<ExplicitCastExpr>(CastE))
+  if (const ExplicitCastExpr *ExCast=dyn_cast_or_null<ExplicitCastExpr>(CastE))
     T = ExCast->getTypeAsWritten();
 
   if (ExTy->isArrayType() || ExTy->isFunctionType() || T->isReferenceType())
@@ -2235,7 +2235,7 @@
           // FIXME: Handle structs.
           QualType T = RHS->getType();
           
-          if (RightV.isUnknown() && (T->isIntegerType() || Loc::IsLocType(T))) {            
+          if (RightV.isUnknown() && (T->isIntegerType() || Loc::IsLocType(T))) {
             unsigned Count = Builder->getCurrentBlockCount();
             SymbolID Sym = SymMgr.getConjuredSymbol(B->getRHS(), Count);
             
