diff --git a/lib/Sema/CodeCompleteConsumer.cpp b/lib/Sema/CodeCompleteConsumer.cpp
index 7dee12a..b626847 100644
--- a/lib/Sema/CodeCompleteConsumer.cpp
+++ b/lib/Sema/CodeCompleteConsumer.cpp
@@ -11,6 +11,7 @@
 //
 //===----------------------------------------------------------------------===//
 #include "clang/Sema/CodeCompleteConsumer.h"
+#include "clang/AST/DeclCXX.h"
 #include "clang/Parse/Scope.h"
 #include "clang/Lex/Preprocessor.h"
 #include "Sema.h"
@@ -123,9 +124,21 @@
     Results.push_back(R);
     return;
   }
+
+  // Look through using declarations.
+  if (UsingDecl *Using = dyn_cast<UsingDecl>(R.Declaration))
+    return MaybeAddResult(Result(Using->getTargetDecl(), R.Rank));
   
-  // FIXME: Using declarations
-  // FIXME: Separate overload sets
+  // Handle each declaration in an overload set separately.
+  if (OverloadedFunctionDecl *Ovl 
+        = dyn_cast<OverloadedFunctionDecl>(R.Declaration)) {
+    for (OverloadedFunctionDecl::function_iterator F = Ovl->function_begin(),
+                                                FEnd = Ovl->function_end();
+         F != FEnd; ++F)
+      MaybeAddResult(Result(*F, R.Rank));
+    
+    return;
+  }
   
   Decl *CanonDecl = R.Declaration->getCanonicalDecl();
   unsigned IDNS = CanonDecl->getIdentifierNamespace();
diff --git a/test/CodeCompletion/tag.cpp b/test/CodeCompletion/tag.cpp
index addad9d..d8f6f2f 100644
--- a/test/CodeCompletion/tag.cpp
+++ b/test/CodeCompletion/tag.cpp
@@ -8,13 +8,20 @@
   template<typename> class Z;
 }
 
+namespace M {
+  class A;
+}
+using M::A;
+
 namespace N {
   class Y;
   
   void test() {
     // CHECK-CC1: Y : 2
     // CHECK-CC1: Z : 2
+    // CHECK-CC1: A : 3
     // CHECK-CC1: X : 3
     // CHECK-CC1: Y : 3
+    // CHECK-CC1: M : 6
     // CHECK-CC1: N : 6
     class
