diff --git a/clang/lib/Analysis/SymbolManager.cpp b/clang/lib/Analysis/SymbolManager.cpp
index 84019fd..5c885cd 100644
--- a/clang/lib/Analysis/SymbolManager.cpp
+++ b/clang/lib/Analysis/SymbolManager.cpp
@@ -65,7 +65,7 @@
 static void print(llvm::raw_ostream& os, const SymExpr *SE) {
   switch (SE->getKind()) {
     case SymExpr::BEGIN_SYMBOLS:
-    case SymExpr::RegionRValue:
+    case SymExpr::RegionValueKind:
     case SymExpr::ConjuredKind:
     case SymExpr::END_SYMBOLS:
       os << '$' << cast<SymbolData>(SE)->getSymbolID();
@@ -91,20 +91,20 @@
   return os;
 }
 
-const SymbolRegionRValue* 
-SymbolManager::getRegionRValueSymbol(const MemRegion* R) {
+const SymbolRegionValue* 
+SymbolManager::getRegionValueSymbol(const MemRegion* R) {
   llvm::FoldingSetNodeID profile;
-  SymbolRegionRValue::Profile(profile, R);
+  SymbolRegionValue::Profile(profile, R);
   void* InsertPos;  
   SymExpr *SD = DataSet.FindNodeOrInsertPos(profile, InsertPos);    
   if (!SD) {  
-    SD = (SymExpr*) BPAlloc.Allocate<SymbolRegionRValue>();
-    new (SD) SymbolRegionRValue(SymbolCounter, R);  
+    SD = (SymExpr*) BPAlloc.Allocate<SymbolRegionValue>();
+    new (SD) SymbolRegionValue(SymbolCounter, R);  
     DataSet.InsertNode(SD, InsertPos);
     ++SymbolCounter;
   }
   
-  return cast<SymbolRegionRValue>(SD);
+  return cast<SymbolRegionValue>(SD);
 }
 
 const SymbolConjured*
@@ -165,7 +165,7 @@
   return T;
 }
 
-QualType SymbolRegionRValue::getType(ASTContext& C) const {
+QualType SymbolRegionValue::getType(ASTContext& C) const {
   if (const TypedRegion* TR = dyn_cast<TypedRegion>(R))
     return TR->getValueType(C);
   
@@ -197,7 +197,7 @@
   
   // Interogate the symbol.  It may derive from an input value to
   // the analyzed function/method.
-  return isa<SymbolRegionRValue>(sym);
+  return isa<SymbolRegionValue>(sym);
 }
 
 SymbolVisitor::~SymbolVisitor() {}
