diff --git mythtv/libs/libmythtv/datadirect.cpp mythtv/libs/libmythtv/datadirect.cpp
index 1870ff0..7583df8 100644
--- mythtv/libs/libmythtv/datadirect.cpp
+++ mythtv/libs/libmythtv/datadirect.cpp
@@ -1006,8 +1006,14 @@ bool DataDirectProcessor::DDPost(QString    ddurl,        QString   &inputFile,
     postdata += "</SOAP-ENV:Body>\n";
     postdata += "</SOAP-ENV:Envelope>\n";
 
-    if (inputFile.isEmpty()) {
+    if (inputFile.isEmpty())
+    {
         inputFile = QString("/tmp/mythtv_ddp_data");
+        if (QFile(inputFile).exists() && !QFileInfo(inputFile).isWritable())
+        {
+            err_txt = QString("Aborting: %1 is not writable").arg(inputFile);
+            return false;
+        }
     }
 
     QHash<QByteArray, QByteArray> headers;
@@ -1039,7 +1045,16 @@ bool DataDirectProcessor::DDPost(QString    ddurl,        QString   &inputFile,
         uncompressed = postdata;
 
     QFile file(inputFile);
-    file.open(QIODevice::WriteOnly);
+    if (!file.open(QIODevice::WriteOnly))
+    {
+        err_txt = QString("Aborting: download OK, but %1 is not writable")
+            .arg(inputFile);
+        return false;
+    }
+    file.setPermissions(inputFile,
+        QFile::ReadOwner | QFile::WriteOwner |
+        QFile::ReadGroup | QFile::WriteGroup |
+        QFile::ReadOther | QFile::WriteOther);
     file.write(uncompressed);
     file.close();
