--- a/tools/PTmasker.c
+++ b/tools/PTmasker.c
@@ -34,10 +34,10 @@
 #include <sys/types.h>
 #include <dirent.h>
 
-#ifndef _MSC_VER
-#include <unistd.h>
-#else
-#include "compat_win32/getopt.h"
+#ifndef _MSC_VER
+#include <unistd.h>
+#else
+#include "compat_win32/getopt.h"
 #endif
 
 #include <errno.h>
@@ -156,6 +156,7 @@
 	return -1;
     }
 
+
 #ifdef testingfeather
     panoFeatherFile(ptrInputFiles, ptrOutputFiles, feather);
     exit(1);
@@ -167,13 +168,28 @@
 	    PrintError("Output filename exists %s. Use -f to overwrite", temp);
 	    return -1;
 	}
-	if (!panoTiffVerifyAreCompatible(ptrInputFiles, filesCount, TRUE)) {
-	    PrintError("Input files are not compatible. Use -f to overwrite");
-	    return -1;
+	if (filesCount > 1) {
+	    if (!panoTiffVerifyAreCompatible(ptrInputFiles, filesCount, TRUE)) {
+		PrintError("Input files are not compatible. Use -f to overwrite");
+		return -1;
+	    }
 	}
     }
     if (! ptQuietFlag) printf("Computing seams for %d files\n", filesCount);
 	
+    if (filesCount == 1) {
+      // only do feathering
+	if (feather == 0) {
+	    PrintError("Only one file specified, nothing to do\n");
+	    return -1;
+	}
+	if (panoFeatherFile(ptrInputFiles, ptrOutputFiles, feather)) {
+	    return 0;
+	} else
+	    return 1;
+
+    }
+
     if (panoStitchReplaceMasks(ptrInputFiles, ptrOutputFiles, filesCount,
 			       feather) != 0) {
 	PrintError("Could not create stitching masks");