diff --git a/lib/Analysis/DataStructure/CallTargets.cpp b/lib/Analysis/DataStructure/CallTargets.cpp
index eb1e28d..8b33cb0 100644
--- a/lib/Analysis/DataStructure/CallTargets.cpp
+++ b/lib/Analysis/DataStructure/CallTargets.cpp
@@ -58,8 +58,10 @@
               } 
               if (N->isComplete() && !IndMap[cs].size()) {
                 ++CompleteEmpty;
-                std::cerr << "Call site empty: '" << cs.getInstruction()->getName() 
-                          << "' In '" << cs.getInstruction()->getParent()->getParent()->getName()
+                std::cerr << "Call site empty: '"
+                << cs.getInstruction()->getName() 
+                          << "' In '"
+                << cs.getInstruction()->getParent()->getParent()->getName()
                           << "'\n";
               }
             } else {
@@ -74,7 +76,8 @@
 {
   return;
   O << "[* = incomplete] CS: func list\n";
-  for (std::map<CallSite, std::vector<Function*> >::const_iterator ii = IndMap.begin(),
+  for (std::map<CallSite, std::vector<Function*> >::const_iterator ii =
+       IndMap.begin(),
          ee = IndMap.end(); ii != ee; ++ii) {
     if (!ii->first.getCalledFunction()) { //only print indirect
       if (!isComplete(ii->first)) {
