diff --git a/contrib/HighOrderMeshOptimizer/OptHomFastCurving.cpp b/contrib/HighOrderMeshOptimizer/OptHomFastCurving.cpp
index 2bd19bd63886a3875f62c4b0aa432a19ffcaf317..e29a4cb5aaa45c77a39c548a1f9d7d1331590118 100644
--- a/contrib/HighOrderMeshOptimizer/OptHomFastCurving.cpp
+++ b/contrib/HighOrderMeshOptimizer/OptHomFastCurving.cpp
@@ -588,6 +588,7 @@ public:
     oss << fNameBase << "_" << tag << ".msh";
     std::string fName = oss.str();
     FILE *fp = fopen(fName.c_str(), "w");
+    if(!fp) return;
     fprintf(fp, "$MeshFormat\n2.2 0 8\n$EndMeshFormat\n");
     fprintf(fp, "$Nodes\n");
     fprintf(fp, "%d\n", point_.size());
@@ -632,6 +633,7 @@ public:
     oss << fNameBase << "_" << tag << ".msh";
     std::string fName = oss.str();
     FILE *fp = fopen(fName.c_str(), "w");
+    if(!fp) return;
     fprintf(fp, "$MeshFormat\n2.2 0 8\n$EndMeshFormat\n");
     fprintf(fp, "$Nodes\n");
     fprintf(fp, "%d\n", vert_.size());