diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/SettingsActivity.kt
index f15b5b5e..c80d712b 100644
--- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/SettingsActivity.kt
@@ -38,7 +38,6 @@ class SettingsActivity : SimpleActivity() {
         setupMonospacedFont()
         setupShowKeyboard()
         setupShowNotePicker()
-        setupMoveUndoneChecklistItems()
         setupShowWordCount()
         setupEnableLineWrap()
         setupFontSize()
@@ -133,14 +132,6 @@ class SettingsActivity : SimpleActivity() {
         }
     }
 
-    private fun setupMoveUndoneChecklistItems() {
-        settings_move_undone_checklist_items.isChecked = config.moveDoneChecklistItems
-        settings_move_undone_checklist_items_holder.setOnClickListener {
-            settings_move_undone_checklist_items.toggle()
-            config.moveDoneChecklistItems = settings_move_undone_checklist_items.isChecked
-        }
-    }
-
     private fun setupShowWordCount() {
         settings_show_word_count.isChecked = config.showWordCount
         settings_show_word_count_holder.setOnClickListener {
diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/WidgetAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/WidgetAdapter.kt
index 1877c768..eac07966 100644
--- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/WidgetAdapter.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/WidgetAdapter.kt
@@ -106,9 +106,6 @@ class WidgetAdapter(val context: Context, val intent: Intent) : RemoteViewsServi
 
             // checklist title can be null only because of the glitch in upgrade to 6.6.0, remove this check in the future
             checklistItems = checklistItems.filter { it.title != null }.toMutableList() as ArrayList<ChecklistItem>
-            if (context.config.moveDoneChecklistItems) {
-                checklistItems.sortBy { it.isDone }
-            }
         }
     }
 
diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/SortChecklistDialog.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/SortChecklistDialog.kt
index 202e61fa..11a55fcf 100644
--- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/SortChecklistDialog.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/SortChecklistDialog.kt
@@ -18,6 +18,7 @@ class SortChecklistDialog(private val activity: SimpleActivity, private val call
     init {
         setupSortRadio()
         setupOrderRadio()
+        setupMoveUndoneChecklistItems()
         AlertDialog.Builder(activity)
             .setPositiveButton(R.string.ok) { _, _ -> dialogConfirmed() }
             .setNegativeButton(R.string.cancel, null)
@@ -48,6 +49,13 @@ class SortChecklistDialog(private val activity: SimpleActivity, private val call
         orderBtn.isChecked = true
     }
 
+    private fun setupMoveUndoneChecklistItems() {
+        view.settings_move_undone_checklist_items.isChecked = config.moveDoneChecklistItems
+        view.settings_move_undone_checklist_items_holder.setOnClickListener {
+            view.settings_move_undone_checklist_items.toggle()
+        }
+    }
+
     private fun dialogConfirmed() {
         val sortingRadio = view.sorting_dialog_radio_sorting
         var sorting = when (sortingRadio.checkedRadioButtonId) {
@@ -61,7 +69,9 @@ class SortChecklistDialog(private val activity: SimpleActivity, private val call
 
         if (currSorting != sorting) {
             config.sorting = sorting
-            callback()
         }
+
+        config.moveDoneChecklistItems = view.settings_move_undone_checklist_items.isChecked
+        callback()
     }
 }
diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/ChecklistFragment.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/ChecklistFragment.kt
index 8a36a75c..6e5b2e9c 100644
--- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/ChecklistFragment.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/ChecklistFragment.kt
@@ -160,6 +160,9 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener {
         updateUIVisibility()
         ChecklistItem.sorting = requireContext().config.sorting
         items.sort()
+        if (context?.config?.moveDoneChecklistItems == true) {
+            items.sortBy { it.isDone }
+        }
         ChecklistAdapter(
             activity = activity as SimpleActivity,
             items = items,
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index 9e696cee..5827636a 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -346,29 +346,6 @@
 
         </RelativeLayout>
 
-        <RelativeLayout
-            android:id="@+id/settings_move_undone_checklist_items_holder"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="@dimen/medium_margin"
-            android:background="?attr/selectableItemBackground"
-            android:paddingStart="@dimen/normal_margin"
-            android:paddingTop="@dimen/activity_margin"
-            android:paddingEnd="@dimen/normal_margin"
-            android:paddingBottom="@dimen/activity_margin">
-
-            <com.simplemobiletools.commons.views.MySwitchCompat
-                android:id="@+id/settings_move_undone_checklist_items"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:background="@null"
-                android:clickable="false"
-                android:paddingStart="@dimen/medium_margin"
-                android:text="@string/move_done_checklist_items"
-                app:switchPadding="@dimen/medium_margin" />
-
-        </RelativeLayout>
-
         <com.simplemobiletools.commons.views.MyTextView
             android:id="@+id/saving_label"
             android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/dialog_sort_checklist.xml b/app/src/main/res/layout/dialog_sort_checklist.xml
index a8d7e200..2fab5eb2 100644
--- a/app/src/main/res/layout/dialog_sort_checklist.xml
+++ b/app/src/main/res/layout/dialog_sort_checklist.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/dialog_holder"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -59,4 +60,24 @@
             android:text="@string/descending" />
 
     </RadioGroup>
+
+    <RelativeLayout
+        android:id="@+id/settings_move_undone_checklist_items_holder"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/medium_margin"
+        android:background="?attr/selectableItemBackground"
+        android:paddingTop="@dimen/activity_margin"
+        android:paddingBottom="@dimen/activity_margin">
+
+        <com.simplemobiletools.commons.views.MyAppCompatCheckbox
+            android:id="@+id/settings_move_undone_checklist_items"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:background="@null"
+            android:clickable="false"
+            android:text="@string/move_done_checklist_items"
+            app:switchPadding="@dimen/medium_margin" />
+
+    </RelativeLayout>
 </LinearLayout>