diff --git a/lib/Sema/SemaLookup.cpp b/lib/Sema/SemaLookup.cpp
index 5b03fa4..c61d666 100644
--- a/lib/Sema/SemaLookup.cpp
+++ b/lib/Sema/SemaLookup.cpp
@@ -1785,16 +1785,20 @@
           continue;
       }
 
-      // FIXME: using decls?  canonical decls?
+      if (isa<UsingShadowDecl>(D))
+        D = cast<UsingShadowDecl>(D)->getTargetDecl();
 
-      FunctionDecl *Fn;
-      if (!Operator || !(Fn = dyn_cast<FunctionDecl>(D)) ||
-          IsAcceptableNonMemberOperatorCandidate(Fn, T1, T2, Context)) {
-        if (isa<FunctionDecl>(D))
-          Functions.insert(D);
-        else if (isa<FunctionTemplateDecl>(D))
-          Functions.insert(D);
-      }
+      // FIXME: canonical decls.
+      // See comment in AddArgumentDependentLookupCandidates().
+
+      if (isa<FunctionDecl>(D)) {
+        if (Operator &&
+            !IsAcceptableNonMemberOperatorCandidate(cast<FunctionDecl>(D),
+                                                    T1, T2, Context))
+          continue;
+        Functions.insert(D);
+      } else if (isa<FunctionTemplateDecl>(D))
+        Functions.insert(D);
     }
   }
 }
diff --git a/lib/Sema/SemaOverload.cpp b/lib/Sema/SemaOverload.cpp
index 54db885..a4c11b0 100644
--- a/lib/Sema/SemaOverload.cpp
+++ b/lib/Sema/SemaOverload.cpp
@@ -4133,8 +4133,13 @@
                                            bool PartialOverloading) {
   ADLFunctionSet Functions;
 
-  // FIXME: Should we be trafficking in canonical function decls throughout?
-  
+  // FIXME: This approach for uniquing ADL results (and removing
+  // redundant candidates from the set) relies on pointer-equality,
+  // which means we need to key off the canonical decl.  However,
+  // always going back to the canonical decl might not get us the
+  // right set of default arguments.  What default arguments are
+  // we supposed to consider on ADL candidates, anyway?
+
   // FIXME: Pass in the explicit template arguments?
   ArgumentDependentLookup(Name, Operator, Args, NumArgs, Functions);
 
diff --git a/test/SemaCXX/using-decl-1.cpp b/test/SemaCXX/using-decl-1.cpp
index e8a7d70..eb41e66 100644
--- a/test/SemaCXX/using-decl-1.cpp
+++ b/test/SemaCXX/using-decl-1.cpp
@@ -60,3 +60,20 @@
     g(f);
   }
 }
+
+// Make sure that ADL can find names brought in by using decls.
+namespace test0 {
+  namespace ns {
+    class Foo {};
+    
+    namespace inner {
+      void foo(char *); // expected-note {{no known conversion}} 
+    }
+
+    using inner::foo;
+  }
+
+  void test(ns::Foo *p) {
+    foo(*p); // expected-error {{no matching function for call to 'foo'}}
+  }
+}
