diff --git a/lib/Sema/SemaInit.cpp b/lib/Sema/SemaInit.cpp
index 08ae7cb..a1fd79b 100644
--- a/lib/Sema/SemaInit.cpp
+++ b/lib/Sema/SemaInit.cpp
@@ -2001,10 +2001,11 @@
   Steps.push_back(S);
 }
 
-void InitializationSequence::AddUserConversionStep(FunctionDecl *Function) {
+void InitializationSequence::AddUserConversionStep(FunctionDecl *Function,
+                                                   QualType T) {
   Step S;
   S.Kind = SK_UserConversion;
-  S.Type = Function->getResultType().getNonReferenceType();
+  S.Type = T;
   S.Function = Function;
   Steps.push_back(S);
 }
@@ -2209,18 +2210,20 @@
   if (OverloadingResult Result 
         = S.BestViableFunction(CandidateSet, DeclLoc, Best))
     return Result;
-  
-  // Add the user-defined conversion step.
+
   FunctionDecl *Function = Best->Function;
-  Sequence.AddUserConversionStep(Function);
-  
-  // Determine whether we need to perform derived-to-base or 
-  // cv-qualification adjustments.
+
+  // Compute the returned type of the conversion.
   if (isa<CXXConversionDecl>(Function))
     T2 = Function->getResultType();
   else
     T2 = cv1T1;
-    
+
+  // Add the user-defined conversion step.
+  Sequence.AddUserConversionStep(Function, T2.getNonReferenceType());
+
+  // Determine whether we need to perform derived-to-base or 
+  // cv-qualification adjustments.
   bool NewDerivedToBase = false;
   Sema::ReferenceCompareResult NewRefRelationship
     = S.CompareReferenceRelationship(DeclLoc, T1, T2.getNonReferenceType(),
diff --git a/lib/Sema/SemaInit.h b/lib/Sema/SemaInit.h
index debb0de..a29159a 100644
--- a/lib/Sema/SemaInit.h
+++ b/lib/Sema/SemaInit.h
@@ -511,7 +511,7 @@
   
   /// \brief Add a new step invoking a conversion function, which is either
   /// a constructor or a conversion function.
-  void AddUserConversionStep(FunctionDecl *Function);
+  void AddUserConversionStep(FunctionDecl *Function, QualType T);
   
   /// \brief Add a new step that performs a qualification conversion to the
   /// given type.
