diff --git a/lib/CodeGen/CGDeclCXX.cpp b/lib/CodeGen/CGDeclCXX.cpp
index 459a1e1..7cbadd3 100644
--- a/lib/CodeGen/CGDeclCXX.cpp
+++ b/lib/CodeGen/CGDeclCXX.cpp
@@ -173,7 +173,7 @@
 
   if (D->hasAttr<InitPriorityAttr>()) {
     unsigned int order = D->getAttr<InitPriorityAttr>()->getPriority();
-    OrderGlobalInitsType Key(order, PrioritizedCXXGlobalInits.size());
+    OrderGlobalInits Key(order, PrioritizedCXXGlobalInits.size());
     PrioritizedCXXGlobalInits.push_back(std::make_pair(Key, Fn));
   }
   else
diff --git a/lib/CodeGen/CodeGenModule.h b/lib/CodeGen/CodeGenModule.h
index 4fbf343..d0d3c7c 100644
--- a/lib/CodeGen/CodeGenModule.h
+++ b/lib/CodeGen/CodeGenModule.h
@@ -75,26 +75,24 @@
   class CGObjCRuntime;
   class MangleBuffer;
   
-  typedef struct OrderGlobalInits{
+  struct OrderGlobalInits {
     unsigned int priority;
     unsigned int lex_order;
     OrderGlobalInits(unsigned int p, unsigned int l) 
-    : priority(p), lex_order(l) {}
-    friend bool operator==(const OrderGlobalInits &LHS,
-                    const OrderGlobalInits &RHS) {
-      return LHS.priority == RHS.priority &&
-             LHS.lex_order == RHS.lex_order;
+      : priority(p), lex_order(l) {}
+    
+    bool operator==(const OrderGlobalInits &RHS) const {
+      return priority == RHS.priority &&
+             lex_order == RHS.lex_order;
     }
     
-    friend bool operator<(const OrderGlobalInits &LHS,
-                   const OrderGlobalInits &RHS) {
-      if (LHS.priority < RHS.priority)
+    bool operator<(const OrderGlobalInits &RHS) const {
+      if (priority < RHS.priority)
         return true;
       
-      return LHS.priority == RHS.priority &&
-            LHS.lex_order < RHS.lex_order;
+      return priority == RHS.priority && lex_order < RHS.lex_order;
     }
-  } OrderGlobalInitsType;
+  };
   
 /// CodeGenModule - This class organizes the cross-function state that is used
 /// while generating LLVM code.
@@ -168,7 +166,7 @@
   /// - Global variables with initializers whose order of initialization
   /// is set by init_priority attribute.
   
-  llvm::SmallVector<std::pair<OrderGlobalInitsType, llvm::Function*>, 8> 
+  llvm::SmallVector<std::pair<OrderGlobalInits, llvm::Function*>, 8> 
     PrioritizedCXXGlobalInits;
 
   /// CXXGlobalDtors - Global destructor functions and arguments that need to
