diff --git a/include/llvm/Analysis/InstForest.h b/include/llvm/Analysis/InstForest.h
index 6a05e2a7622..5d27c819159 100644
--- a/include/llvm/Analysis/InstForest.h
+++ b/include/llvm/Analysis/InstForest.h
@@ -142,6 +142,8 @@ template<class Payload>
 class InstForest : public std::vector<InstTreeNode<Payload> *> {
   friend class InstTreeNode<Payload>;
 
+  typedef std::vector<InstTreeNode<Payload> *>::const_iterator const_iterator;
+
   // InstMap - Map contains entries for ALL instructions in the method and the
   // InstTreeNode that they correspond to.
   //
@@ -196,7 +198,7 @@ public:
 
   // print - Called by operator<< below...
   void print(std::ostream &out) const {
-    for (typename const_iterator I = begin(), E = end(); I != E; ++I)
+    for (const_iterator I = begin(), E = end(); I != E; ++I)
       out << *I;
   }
 };