 +  /// may be invoked multiple times; the external source should take care not 
 +  /// to introduce the same selectors repeatedly.
 +  virtual void ReadReferencedSelectors(SmallVectorImpl<std::pair<Selector, 
-+                                                        SourceLocation> > &Sels);
++                                                       SourceLocation> > &Sels);
 +
 +  /// \brief Read the set of weak, undeclared identifiers known to the
 +  /// external Sema source.

+}
+
+CXXBaseSpecifier *MultiplexExternalSemaSource::GetExternalCXXBaseSpecifiers(
+                                                                uint64_t Offset){
+  for(size_t i = 0; i < Sources.size(); ++i)
+    if (CXXBaseSpecifier *Res = Sources[i]->GetExternalCXXBaseSpecifiers(Offset))
+      return Res;
+  return 0; 
+}
+

+  Sources.push_back(&source);
+}
+
+//===----------------------------------------------------------------------===//
+// ExternalASTSource.
+//===----------------------------------------------------------------------===//
+
+Decl *MultiplexExternalSemaSource::GetExternalDecl(uint32_t ID) {
+  for(size_t i = 0; i < Sources.size(); ++i)
