Index: src/SymTab/Indexer.cc
===================================================================
--- src/SymTab/Indexer.cc	(revision 04380914e7d493aa24ecb2e24d89d5752c2133fb)
+++ src/SymTab/Indexer.cc	(revision 6a57da5334f1340c33beb304ddd8f4b840f1f515)
@@ -602,11 +602,5 @@
 		const std::string &name = decl->get_name();
 		std::string mangleName;
-		// TODO the first branch of this if is a bug-for-bug replication of Richard's code;
-		// it can allow C decls to hide CFA decls when they shouldn't, but the current prelude 
-		// depends on this bug to build ... <stdlib>'s random() should be fixed to *not* hide 
-		// <stdlib.h>'s random() before this first branch is taken out again
-		if ( decl->get_linkage() == LinkageSpec::C ) {
-			mangleName = name;
-		} else if ( LinkageSpec::isOverridable( decl->get_linkage() ) ) {
+		if ( LinkageSpec::isOverridable( decl->get_linkage() ) ) {
 			// mangle the name without including the appropriate suffix, so overridable routines are placed into the
 			// same "bucket" as their user defined versions.
@@ -624,5 +618,5 @@
 			  // doesn't check decls that have the same manglename, and all C-linkage decls are defined to 
 			  // have their name as their manglename, hence the error can never trigger).
-			  // The elided code here is closer to correct, but name mangling would have to be completely 
+			  // The code here is closer to correct, but name mangling would have to be completely 
 			  // isomorphic to C type-compatibility, which it may not be.
 			
