diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp
index c26cfee..5b786d4 100644
--- a/lib/Target/CBackend/CBackend.cpp
+++ b/lib/Target/CBackend/CBackend.cpp
@@ -1224,8 +1224,8 @@
                                           unsigned Indent) {
   for (succ_iterator SI = succ_begin(CurBlock), E = succ_end(CurBlock);
        SI != E; ++SI)
-    for (BasicBlock::iterator I = SI->begin();
-         PHINode *PN = dyn_cast<PHINode>(I); ++I) {
+    for (BasicBlock::iterator I = SI->begin(); isa<PHINode>(I); ++I) {
+      PHINode *PN = cast<PHINode>(I);
       //  now we have to do the printing
       Out << std::string(Indent, ' ');
       Out << "  " << Mang->getValueName(I) << "__PHI_TEMPORARY = ";
diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp
index c26cfee..5b786d4 100644
--- a/lib/Target/CBackend/Writer.cpp
+++ b/lib/Target/CBackend/Writer.cpp
@@ -1224,8 +1224,8 @@
                                           unsigned Indent) {
   for (succ_iterator SI = succ_begin(CurBlock), E = succ_end(CurBlock);
        SI != E; ++SI)
-    for (BasicBlock::iterator I = SI->begin();
-         PHINode *PN = dyn_cast<PHINode>(I); ++I) {
+    for (BasicBlock::iterator I = SI->begin(); isa<PHINode>(I); ++I) {
+      PHINode *PN = cast<PHINode>(I);
       //  now we have to do the printing
       Out << std::string(Indent, ' ');
       Out << "  " << Mang->getValueName(I) << "__PHI_TEMPORARY = ";
