diff --git a/tapeserver/castor/tape/tapeserver/daemon/DiskWriteTask.cpp b/tapeserver/castor/tape/tapeserver/daemon/DiskWriteTask.cpp
index 6b4e9f3ae23b217382de0ef94f91ef9f01e6f1d5..55790a2292275078d819c27a6dc396f6e09e4660 100644
--- a/tapeserver/castor/tape/tapeserver/daemon/DiskWriteTask.cpp
+++ b/tapeserver/castor/tape/tapeserver/daemon/DiskWriteTask.cpp
@@ -97,7 +97,8 @@ bool DiskWriteTask::execute(RecallReportPacker& reporter,cta::log::LogContext&
         // Write the data.
         currentErrorToCount = "Error_diskWrite";
         m_stats.dataVolume+=mb->m_payload.size();
-        mb->m_payload.write(*writeFile);
+        if (mb->m_payload.size())
+          mb->m_payload.write(*writeFile);
         m_stats.readWriteTime+=localTime.secs(cta::utils::Timer::resetCounter);
         
         checksum = mb->m_payload.adler32(checksum);