diff --git a/src/handlers/xdgurl.cpp b/src/handlers/xdgurl.cpp
index 36904e276ce9d4b565951454be07c3c42b223119..b245a3b8a2f6c3be73a518d8e864242db27b972f 100644
--- a/src/handlers/xdgurl.cpp
+++ b/src/handlers/xdgurl.cpp
@@ -121,14 +121,12 @@ void XdgUrl::_saveDownloadedFile(QNetworkReply *reply)
 
     QTemporaryFile temporaryFile;
 
-    if (!temporaryFile.open()) {
+    if (!temporaryFile.open() || temporaryFile.write(reply->readAll()) == -1) {
         result["error"] = QString("save_error");
         emit finished(Utility::Json::convertObjToStr(result));
         return;
     }
 
-    temporaryFile.write(reply->readAll());
-
     QMimeDatabase mimeDb;
     QString mimeType = mimeDb.mimeTypeForFile(temporaryFile.fileName()).name();