diff --git a/lib/CodeGen/PHIElimination.cpp b/lib/CodeGen/PHIElimination.cpp
index ebb3ae2..4df9a92 100644
--- a/lib/CodeGen/PHIElimination.cpp
+++ b/lib/CodeGen/PHIElimination.cpp
@@ -131,18 +131,9 @@
       std::pair<LiveVariables::killed_iterator, LiveVariables::killed_iterator> 
         RKs = LV->killed_range(MPhi);
       std::vector<std::pair<MachineInstr*, unsigned> > Range;
-      if (RKs.first != RKs.second) {
-        // Copy the range into a vector...
-        Range.assign(RKs.first, RKs.second);
-
-        // Delete the range...
+      if (RKs.first != RKs.second) // Delete the range.
         LV->removeVirtualRegistersKilled(RKs.first, RKs.second);
 
-        // Add all of the kills back, which will update the appropriate info...
-        for (unsigned i = 0, e = Range.size(); i != e; ++i)
-          LV->addVirtualRegisterKilled(Range[i].second, PHICopy);
-      }
-
       RKs = LV->dead_range(MPhi);
       if (RKs.first != RKs.second) {
         // Works as above...
@@ -252,6 +243,11 @@
           if (!ValueIsLive) {
             MachineBasicBlock::iterator Prev = prior(I);
             LV->addVirtualRegisterKilled(SrcReg, Prev);
+
+            // This vreg no longer lives all of the way through opBlock.
+            unsigned opBlockNum = opBlock.getNumber();
+            if (opBlockNum < InRegVI.AliveBlocks.size())
+              InRegVI.AliveBlocks[opBlockNum] = false;
           }
         }
       }
