diff --git a/ReleaseNotes.md b/ReleaseNotes.md
index e4d75e3b31563ce784f55d700a6e55917cdae1d2..cf63e5f910d941712f56264e3ed43f1b3d80f255 100644
--- a/ReleaseNotes.md
+++ b/ReleaseNotes.md
@@ -16,6 +16,7 @@
 - cta/CTA#123 - Change some tape server errors into warnings
 - cta/CTA#161 - Fix bug when using temporary tables with PostgreSQL
 - cta/CTA#197 - Include order in XrdSsiCtaRequestMessage.cpp
+- cta/CTA#80 - Fix tape thread complete success/failure message parameter
 
 # v4.7.12-1
 
diff --git a/tapeserver/castor/tape/tapeserver/daemon/TapeReadSingleThread.cpp b/tapeserver/castor/tape/tapeserver/daemon/TapeReadSingleThread.cpp
index e0bb7d9d2850fc0dbf310d8e18129e328844cb02..138e9181a463f4cb43eb167dfe5ccecb52757c8e 100644
--- a/tapeserver/castor/tape/tapeserver/daemon/TapeReadSingleThread.cpp
+++ b/tapeserver/castor/tape/tapeserver/daemon/TapeReadSingleThread.cpp
@@ -419,7 +419,7 @@ void castor::tape::tapeserver::daemon::TapeReadSingleThread::run() {
     // The session completed successfully, and the cleaner (unmount) executed
     // at the end of the previous block. Log the results.
     cta::log::ScopedParamContainer params(m_logContext);
-    params.add("status", "success");
+    params.add("status", m_watchdog.errorHappened() ? "error" : "success");
     m_stats.totalTime = totalTimer.secs();
     logWithStat(cta::log::INFO, "Tape thread complete", params);
     // Report one last time the stats, after unloading/unmounting.
diff --git a/tapeserver/castor/tape/tapeserver/daemon/TapeWriteSingleThread.cpp b/tapeserver/castor/tape/tapeserver/daemon/TapeWriteSingleThread.cpp
index c37c56d27d6f8b2d2fd4e91baa735503751f6f31..8d172d7be73062cd8c67d7b594494b55b657a817 100644
--- a/tapeserver/castor/tape/tapeserver/daemon/TapeWriteSingleThread.cpp
+++ b/tapeserver/castor/tape/tapeserver/daemon/TapeWriteSingleThread.cpp
@@ -443,7 +443,7 @@ void castor::tape::tapeserver::daemon::TapeWriteSingleThread::run() {
     // The session completed successfully, and the cleaner (unmount) executed
     // at the end of the previous block. Log the results.
     cta::log::ScopedParamContainer params(m_logContext);
-    params.add("status", "success");
+    params.add("status", m_watchdog.errorHappened() ? "error" : "success");
     m_stats.totalTime = totalTimer.secs();
     m_stats.deliveryTime = m_stats.totalTime;
     logWithStats(cta::log::INFO, "Tape thread complete", params);