diff --git a/applications/utilities/surface/surfaceMeshTriangulate/surfaceMeshTriangulate.C b/applications/utilities/surface/surfaceMeshTriangulate/surfaceMeshTriangulate.C
index aed226b07fb4b7875fedb23ee34d7823974c2c0d..ee4544ee34529b4b397beed5c8a012ef67437fd7 100644
--- a/applications/utilities/surface/surfaceMeshTriangulate/surfaceMeshTriangulate.C
+++ b/applications/utilities/surface/surfaceMeshTriangulate/surfaceMeshTriangulate.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -361,9 +361,13 @@ int main(int argc, char *argv[])
 
         fileName globalCasePath
         (
-            runTime.processorCase()
-          ? runTime.path()/".."/outFileName
-          : runTime.path()/outFileName
+            outFileName.isAbsolute()
+          ? outFileName
+          : (
+                runTime.processorCase()
+              ? runTime.rootPath()/runTime.globalCaseName()/outFileName
+              : runTime.path()/outFileName
+            )
         );
 
         Info<< "Writing merged surface to " << globalCasePath << endl;