diff --git a/include/clang/AST/Decl.h b/include/clang/AST/Decl.h
index eda74f3..28d7a57 100644
--- a/include/clang/AST/Decl.h
+++ b/include/clang/AST/Decl.h
@@ -802,6 +802,7 @@
   ///  (i.e., all forward declarations appear first in the chain).  Note that
   ///  one should make no other assumption about the order of the RecordDecl's
   ///  within this chain with respect to the original source.
+  ///  NOTE: This is *not* an owning reference.
   RecordDecl* NextDecl;
   
   /// Members/NumMembers - This is a new[]'d array of pointers to Decls.
@@ -821,6 +822,18 @@
 
   virtual void Destroy(ASTContext& C);
   
+  /// isForwardDeclaration - Returns true if this RecordDecl represents a
+  ///  forward declaration.
+  bool isForwardDeclaration() const {
+    assert ((!Members || NextDecl == 0) && "(Members != 0) => (NextDecl == 0)");
+    return !Members;
+  }
+  
+  /// getDefinitionDecl - Returns the RecordDecl for the struct/union that
+  ///  represents the actual definition (i.e., not a forward declaration).
+  ///  This method returns NULL if no such RecordDecl exists.
+  const RecordDecl* getDefinitionDecl() const;  
+  
   bool hasFlexibleArrayMember() const { return HasFlexibleArrayMember; }
   void setHasFlexibleArrayMember(bool V) { HasFlexibleArrayMember = V; }
   
diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp
index c2ae5d9..4b4aa65 100644
--- a/lib/AST/Decl.cpp
+++ b/lib/AST/Decl.cpp
@@ -160,6 +160,18 @@
   return new (Mem) RecordDecl(DK, DC, L, Id, PrevDecl);
 }
 
+/// getDefinitionDecl - Returns the RecordDecl for the struct/union that
+///  represents the actual definition (i.e., not a forward declaration).
+///  This method returns NULL if no such RecordDecl exists.
+const RecordDecl* RecordDecl::getDefinitionDecl() const {
+  const RecordDecl* R = this;
+  
+  for (RecordDecl* N = R->NextDecl; N; N = R->NextDecl)
+    R = N;
+  
+  return R->Members ? R : 0;
+}
+
 
 FileScopeAsmDecl *FileScopeAsmDecl::Create(ASTContext &C,
                                            SourceLocation L,
