diff --git a/lib/AST/ASTNode.cpp b/lib/AST/ASTLocation.cpp
similarity index 87%
rename from lib/AST/ASTNode.cpp
rename to lib/AST/ASTLocation.cpp
index ff5ecc1..e72acf0 100644
--- a/lib/AST/ASTNode.cpp
+++ b/lib/AST/ASTLocation.cpp
@@ -1,4 +1,4 @@
-//===--- ASTNode.h - A <Decl, Stmt> pair ------------------------*- C++ -*-===//
+//===--- ASTLocation.h - A <Decl, Stmt> pair --------------------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -7,11 +7,11 @@
 //
 //===----------------------------------------------------------------------===//
 //
-//  ASTNode is Decl or a Stmt and its immediate Decl parent.
+//  ASTLocation is Decl or a Stmt and its immediate Decl parent.
 //
 //===----------------------------------------------------------------------===//
 
-#include "clang/AST/ASTNode.h"
+#include "clang/AST/ASTLocation.h"
 #include "clang/AST/Decl.h"
 #include "clang/AST/Stmt.h"
 #include "clang/AST/Expr.h"
@@ -60,13 +60,13 @@
   return 0;
 }
 
-bool ASTNode::isImmediateParent(Decl *D, Stmt *Node) {
+bool ASTLocation::isImmediateParent(Decl *D, Stmt *Node) {
   assert(D && Node && "Passed null Decl or null Stmt");
   return D == FindImmediateParent(D, Node);
 }
 
-void ASTNode::print(llvm::raw_ostream &OS) {
-  assert(isValid() && "ASTNode is not valid");
+void ASTLocation::print(llvm::raw_ostream &OS) {
+  assert(isValid() && "ASTLocation is not valid");
 
   OS << "[Decl: " << getDecl()->getDeclKindName() << " ";
   if (NamedDecl *ND = dyn_cast<NamedDecl>(getDecl()))
diff --git a/lib/AST/CMakeLists.txt b/lib/AST/CMakeLists.txt
index 899bc8f..f844cf1 100644
--- a/lib/AST/CMakeLists.txt
+++ b/lib/AST/CMakeLists.txt
@@ -4,7 +4,7 @@
   APValue.cpp
   ASTConsumer.cpp
   ASTContext.cpp
-  ASTNode.cpp
+  ASTLocation.cpp
   CFG.cpp
   DeclarationName.cpp
   DeclBase.cpp
diff --git a/lib/AST/DeclReferenceMap.cpp b/lib/AST/DeclReferenceMap.cpp
index 3e0114a..41f53fd 100644
--- a/lib/AST/DeclReferenceMap.cpp
+++ b/lib/AST/DeclReferenceMap.cpp
@@ -7,15 +7,15 @@
 //
 //===----------------------------------------------------------------------===//
 //
-//  DeclReferenceMap creates a mapping from Decls to the ASTNodes that
-//  references them.
+//  DeclReferenceMap creates a mapping from Decls to the ASTLocations that
+//  reference them.
 //
 //===----------------------------------------------------------------------===//
 
 #include "clang/AST/DeclReferenceMap.h"
 #include "clang/AST/Decl.h"
 #include "clang/AST/Stmt.h"
-#include "clang/AST/ASTNode.h"
+#include "clang/AST/ASTLocation.h"
 #include "clang/AST/DeclVisitor.h"
 #include "clang/AST/StmtVisitor.h"
 #include "llvm/Support/Compiler.h"
@@ -65,7 +65,7 @@
 
 void StmtMapper::VisitDeclRefExpr(DeclRefExpr *Node) {
   NamedDecl *PrimD = cast<NamedDecl>(Node->getDecl()->getPrimaryDecl());
-  Map.insert(std::make_pair(PrimD, ASTNode(Parent, Node)));
+  Map.insert(std::make_pair(PrimD, ASTLocation(Parent, Node)));
 }
 
 void StmtMapper::VisitStmt(Stmt *Node) {
@@ -113,16 +113,16 @@
   DeclMapper(Map).Visit(Ctx.getTranslationUnitDecl());
 }
 
-DeclReferenceMap::astnode_iterator
+DeclReferenceMap::astlocation_iterator
 DeclReferenceMap::refs_begin(NamedDecl *D) const {
   NamedDecl *Prim = cast<NamedDecl>(D->getPrimaryDecl());
-  return astnode_iterator(Map.lower_bound(Prim));  
+  return astlocation_iterator(Map.lower_bound(Prim));  
 }
 
-DeclReferenceMap::astnode_iterator
+DeclReferenceMap::astlocation_iterator
 DeclReferenceMap::refs_end(NamedDecl *D) const {
   NamedDecl *Prim = cast<NamedDecl>(D->getPrimaryDecl());
-  return astnode_iterator(Map.upper_bound(Prim));  
+  return astlocation_iterator(Map.upper_bound(Prim));  
 }
 
 bool DeclReferenceMap::refs_empty(NamedDecl *D) const {
