diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp
index 6ebe127..a812ba9 100644
--- a/lib/CodeGen/CodeGenModule.cpp
+++ b/lib/CodeGen/CodeGenModule.cpp
@@ -794,6 +794,8 @@
   // Lookup the entry, lazily creating it if necessary.
   llvm::GlobalValue *&Entry = GlobalDeclMap[getMangledName(D)];
   if (!Entry)
+    Entry = getModule().getFunction(getMangledName(D));
+  if (!Entry)
     Entry = EmitForwardFunctionDefinition(D, 0);
 
   return llvm::ConstantExpr::getBitCast(Entry, PTy);
@@ -872,14 +874,14 @@
 
 
 /// getBuiltinLibFunction
-llvm::Function *CodeGenModule::getBuiltinLibFunction(unsigned BuiltinID) {
+llvm::Value *CodeGenModule::getBuiltinLibFunction(unsigned BuiltinID) {
   if (BuiltinID > BuiltinFunctions.size())
     BuiltinFunctions.resize(BuiltinID);
   
   // Cache looked up functions.  Since builtin id #0 is invalid we don't reserve
   // a slot for it.
   assert(BuiltinID && "Invalid Builtin ID");
-  llvm::Function *&FunctionSlot = BuiltinFunctions[BuiltinID-1];
+  llvm::Value *&FunctionSlot = BuiltinFunctions[BuiltinID-1];
   if (FunctionSlot)
     return FunctionSlot;
   
@@ -913,8 +915,15 @@
     assert(Existing == 0 && "FIXME: Name collision");
   }
 
+  llvm::GlobalValue *&ExitingFn = GlobalDeclMap[getContext().Idents.get(Name).getName()];
+  if (ExitingFn) {
+    llvm::Function *Fn = dyn_cast<llvm::Function>(ExitingFn);
+    assert(Fn && "builting mixing with non-function");
+    return FunctionSlot = llvm::ConstantExpr::getBitCast(Fn, Ty);
+  }
+
   // FIXME: param attributes for sext/zext etc.
-  return FunctionSlot = 
+  return FunctionSlot = ExitingFn =
     llvm::Function::Create(Ty, llvm::Function::ExternalLinkage, Name,
                            &getModule());
 }
diff --git a/lib/CodeGen/CodeGenModule.h b/lib/CodeGen/CodeGenModule.h
index 3a98bb7..093a9b1 100644
--- a/lib/CodeGen/CodeGenModule.h
+++ b/lib/CodeGen/CodeGenModule.h
@@ -154,7 +154,7 @@
     int GlobalUniqueCount;
   } Block;
 
-  std::vector<llvm::Function *> BuiltinFunctions;
+  std::vector<llvm::Value *> BuiltinFunctions;
 public:
   CodeGenModule(ASTContext &C, const LangOptions &Features, llvm::Module &M,
                 const llvm::TargetData &TD, Diagnostic &Diags,
@@ -243,7 +243,7 @@
 
   /// getBuiltinLibFunction - Given a builtin id for a function like
   /// "__builtin_fabsf", return a Function* for "fabsf".
-  llvm::Function *getBuiltinLibFunction(unsigned BuiltinID);
+  llvm::Value *getBuiltinLibFunction(unsigned BuiltinID);
 
   llvm::Function *getMemCpyFn();
   llvm::Function *getMemMoveFn();
