diff --git a/src/modules/partition/gui/EraseDiskPage.cpp b/src/modules/partition/gui/EraseDiskPage.cpp
index 47992b71fde554e53820d736ce702f24197741d8..9e161e16099a75ce4fdb113c4634554f61c32586 100644
--- a/src/modules/partition/gui/EraseDiskPage.cpp
+++ b/src/modules/partition/gui/EraseDiskPage.cpp
@@ -292,22 +292,40 @@ EraseDiskPage::swapSuggestion( const qint64 availableSpaceB ) const {
         overestimationFactor = 1.10;
     }
 
-    if ( availableRamB < 2 GiB )
-        suggestedSwapSizeB = qMax( 2 GiB, availableRamB * 2 );
-    else if ( availableRamB >= 2 GiB && availableRamB < 8 GiB )
-        suggestedSwapSizeB = availableRamB;
-    else if ( availableRamB >= 8 GiB && availableRamB < 64 GiB )
-        suggestedSwapSizeB = availableRamB / 2;
-    else
-        suggestedSwapSizeB = 4 GiB;
-
-    suggestedSwapSizeB *= overestimationFactor;
+    bool ensureSuspendToDisk =
+        Calamares::JobQueue::instance()->globalStorage()->
+            value( "ensureSuspendToDisk" ).toBool();
 
-    // don't use more 10% of available space
-    qreal maxSwapDiskRatio = 1.10;
-    qint64 maxSwapSizeB = availableSpaceB * maxSwapDiskRatio;
-    if ( suggestedSwapSizeB > maxSwapSizeB )
-        suggestedSwapSizeB = maxSwapSizeB;
+    if ( ensureSuspendToDisk )
+    {
+        if ( availableRamB < 4 GiB )
+            suggestedSwapSizeB = qMax( 2 GiB, availableRamB * 2 );
+        else if ( availableRamB >= 4 GiB && availableRamB < 8 GiB )
+            suggestedSwapSizeB = 8 GiB;
+        else
+            suggestedSwapSizeB = availableRamB;
+
+        suggestedSwapSizeB *= overestimationFactor;
+    }
+    else //if we don't care about suspend to disk
+    {
+        if ( availableRamB < 2 GiB )
+            suggestedSwapSizeB = qMax( 2 GiB, availableRamB * 2 );
+        else if ( availableRamB >= 2 GiB && availableRamB < 8 GiB )
+            suggestedSwapSizeB = availableRamB;
+        else if ( availableRamB >= 8 GiB && availableRamB < 64 GiB )
+            suggestedSwapSizeB = availableRamB / 2;
+        else
+            suggestedSwapSizeB = 4 GiB;
+
+        suggestedSwapSizeB *= overestimationFactor;
+
+        // don't use more than 10% of available space
+        qreal maxSwapDiskRatio = 1.10;
+        qint64 maxSwapSizeB = availableSpaceB * maxSwapDiskRatio;
+        if ( suggestedSwapSizeB > maxSwapSizeB )
+            suggestedSwapSizeB = maxSwapSizeB;
+    }
 
     cDebug() << "Suggested swap size:" << suggestedSwapSizeB / 1024. / 1024. /1024. << "GiB";