diff --git a/SystemTools.cxx b/SystemTools.cxx
index eb1aadf0c7699abc1d98699b1b02f5e48fc0c11c..50626e5adcda9affd058c4ba140805043001bd6f 100644
--- a/SystemTools.cxx
+++ b/SystemTools.cxx
@@ -1367,14 +1367,14 @@ kwsys_stl::string SystemTools::ConvertToUnixOutputPath(const char* path)
     ret.erase(pos, 1);
     }
   // now escape spaces if there is a space in the path
-  if(ret.find(" ") != kwsys_stl::string::npos)
+  if(ret.find_first_of(" ()") != kwsys_stl::string::npos)
     {
     kwsys_stl::string result = "";
     char lastch = 1;
     for(const char* ch = ret.c_str(); *ch != '\0'; ++ch)
       {
         // if it is already escaped then don't try to escape it again
-      if(*ch == ' ' && lastch != '\\')
+      if((*ch == ' ' || *ch == '(' || *ch == ')') && lastch != '\\')
         {
         result += '\\';
         }