diff --git a/SystemTools.cxx b/SystemTools.cxx
index 50c0b3ff97e8a6827afe20bbfe3d614cae31052f..9f58050fde58d4a6d5534accd5da58816e6298cb 100644
--- a/SystemTools.cxx
+++ b/SystemTools.cxx
@@ -235,10 +235,16 @@ const char* SystemTools::GetExecutableExtension()
 
 bool SystemTools::MakeDirectory(const char* path)
 {
-  if(SystemTools::FileExists(path))
+  if(SystemTools::FileIsDirectory(path))
     {
     return true;
     }
+
+  // Do not make a directory on top of a file.
+  if(SystemTools::FileExists(path))
+    {
+    return false;
+    }
   kwsys_stl::string dir = path;
   if(dir.size() == 0)
     {