Index: lib/Driver/Driver.cpp
===================================================================
--- lib/Driver/Driver.cpp	(revision 84178)
+++ lib/Driver/Driver.cpp	(working copy)
@@ -1201,8 +1201,18 @@ std::string Driver::GetProgramPath(const char *Nam
          it = List.begin(), ie = List.end(); it != ie; ++it) {
     llvm::sys::Path P(*it);
     P.appendComponent(Name);
-    if (WantFile ? P.exists() : P.canExecute())
+    if (WantFile) {
+      if (P.exists()) {
+        return P.str();
+      }
+    } else if (P.canExecute()) {
       return P.str();
+    } else if (P.getSuffix().empty()) {
+      P.appendSuffix("exe");
+      if (P.canExecute()) {
+        return P.str();
+      }
+    }
   }
 
   // If all else failed, search the path.
