diff --git a/include/llvm/Support/GraphWriter.h b/include/llvm/Support/GraphWriter.h
index b021364..62547dd 100644
--- a/include/llvm/Support/GraphWriter.h
+++ b/include/llvm/Support/GraphWriter.h
@@ -319,25 +319,23 @@
   return O;
 }
 
-std::string createGraphFilename(const Twine &Name);
+std::string createGraphFilename(const Twine &Name, int &FD);
 
 template <typename GraphType>
 std::string WriteGraph(const GraphType &G, const Twine &Name,
                        bool ShortNames = false, const Twine &Title = "") {
-  std::string Filename = createGraphFilename(Name);
-  errs() << "Writing '" << Filename << "'... ";
+  int FD;
+  std::string Filename = createGraphFilename(Name, FD);
+  raw_fd_ostream O(FD, /*shouldClose=*/ true);
 
-  std::string ErrorInfo;
-  raw_fd_ostream O(Filename.c_str(), ErrorInfo);
-
-  if (ErrorInfo.empty()) {
-    llvm::WriteGraph(O, G, ShortNames, Title);
-    errs() << " done. \n";
-  } else {
+  if (FD == -1) {
     errs() << "error opening file '" << Filename << "' for writing!\n";
     return "";
   }
 
+  llvm::WriteGraph(O, G, ShortNames, Title);
+  errs() << " done. \n";
+
   return Filename;
 }
 
diff --git a/lib/Support/GraphWriter.cpp b/lib/Support/GraphWriter.cpp
index f651e25..163345e 100644
--- a/lib/Support/GraphWriter.cpp
+++ b/lib/Support/GraphWriter.cpp
@@ -66,18 +66,17 @@
   return Colors[ColorNumber % NumColors];
 }
 
-std::string llvm::createGraphFilename(const Twine &Name) {
-  std::string ErrMsg;
-  sys::Path Filename = sys::Path::GetTemporaryDirectory(&ErrMsg);
-  if (Filename.isEmpty()) {
-    errs() << "Error: " << ErrMsg << "\n";
+std::string llvm::createGraphFilename(const Twine &Name, int &FD) {
+  FD = -1;
+  SmallString<128> Filename;
+  error_code EC = sys::fs::unique_file(Twine(Name) + "-%%%%%%%.dot",
+                                       FD, Filename);
+  if (EC) {
+    errs() << "Error: " << EC.message() << "\n";
     return "";
   }
-  Filename.appendComponent((Name + ".dot").str());
-  if (Filename.makeUnique(true,&ErrMsg)) {
-    errs() << "Error: " << ErrMsg << "\n";
-    return "";
-  }
+
+  errs() << "Writing '" << Filename << "'... ";
   return Filename.str();
 }
 
