diff --git a/lib/System/DynamicLibrary.cpp b/lib/System/DynamicLibrary.cpp
index ef5c9e6..4260d19 100644
--- a/lib/System/DynamicLibrary.cpp
+++ b/lib/System/DynamicLibrary.cpp
@@ -23,26 +23,18 @@
 static std::map<std::string, void*> symbols;
 static llvm::sys::SmartRWMutex<true> SymbolsLock;
 
-
 void llvm::sys::DynamicLibrary::AddSymbol(const char* symbolName,
                                           void *symbolValue) {
   llvm::sys::SmartScopedWriter<true> Writer(&SymbolsLock);
   symbols[symbolName] = symbolValue;
 }
 
-// It is not possible to use ltdl.c on VC++ builds as the terms of its LGPL
-// license and special exception would cause all of LLVM to be placed under
-// the LGPL.  This is because the exception applies only when libtool is
-// used, and obviously libtool is not used with Visual Studio.  An entirely
-// separate implementation is provided in win32/DynamicLibrary.cpp.
-
 #ifdef LLVM_ON_WIN32
 
 #include "Win32/DynamicLibrary.inc"
 
 #else
 
-//#include "ltdl.h"
 #include <dlfcn.h>
 #include <cassert>
 using namespace llvm;
@@ -53,7 +45,6 @@
 //===          independent code.
 //===----------------------------------------------------------------------===//
 
-//static std::vector<lt_dlhandle> OpenedHandles;
 static std::vector<void *> OpenedHandles;
 
 DynamicLibrary::DynamicLibrary() {}
@@ -61,7 +52,8 @@
 DynamicLibrary::~DynamicLibrary() {
   SmartScopedWriter<true> Writer(&SymbolsLock);
   while(!OpenedHandles.empty()) {
-    void *H = OpenedHandles.back();   OpenedHandles.pop_back(); 
+    void *H = OpenedHandles.back();
+    OpenedHandles.pop_back(); 
     dlclose(H);
   }
 }
@@ -80,8 +72,6 @@
 }
 
 void* DynamicLibrary::SearchForAddressOfSymbol(const char* symbolName) {
-  //  check_ltdl_initialization();
-  
   // First check symbols added via AddSymbol().
   SymbolsLock.reader_acquire();
   std::map<std::string, void *>::iterator I = symbols.find(symbolName);
