diff --git a/src/modules/partition/jobs/ClearMountsJob.cpp b/src/modules/partition/jobs/ClearMountsJob.cpp
index 1a397b325939678e2953fa420262178b39bc49cc..4e156945b3d4060cb9902c850227bf15a947bf7e 100644
--- a/src/modules/partition/jobs/ClearMountsJob.cpp
+++ b/src/modules/partition/jobs/ClearMountsJob.cpp
@@ -200,10 +200,17 @@ QString
 ClearMountsJob::tryClearSwap( const QString& partPath )
 {
     QProcess process;
-    process.start( "mkswap", { partPath } );
+    process.start( "blkid", { "-s", "UUID", "-o", "value", partPath } );
     process.waitForFinished();
-    if ( process.exitCode() == 0 )
-        return QString( "Successfully cleared swap %1." ).arg( partPath );
+    QString swapPartUuid = QString::fromLocal8Bit( process.readAllStandardOutput() ).simplified();
+    if ( process.exitCode() != 0 ||
+         swapPartUuid.isEmpty() )
+        return QString();
 
-    return QString();
+    process.start( "mkswap", { "-U", swapPartUuid, partPath } );
+    process.waitForFinished();
+    if ( process.exitCode() != 0 )
+        return QString();
+
+    return QString( "Successfully cleared swap %1." ).arg( partPath );
 }