diff --git a/app/src/main/java/com/etesync/syncadapter/resource/LocalAddressBook.kt b/app/src/main/java/com/etesync/syncadapter/resource/LocalAddressBook.kt
index bb3ed8b4..d63d8a9b 100644
--- a/app/src/main/java/com/etesync/syncadapter/resource/LocalAddressBook.kt
+++ b/app/src/main/java/com/etesync/syncadapter/resource/LocalAddressBook.kt
@@ -224,8 +224,8 @@ class LocalAddressBook(
             else
                 findDirtyContacts()
 
-    fun findDirtyContacts() = queryContacts("${RawContacts.DIRTY}!=0", null)
-    fun findDirtyGroups() = queryGroups("${Groups.DIRTY}!=0", null)
+    fun findDirtyContacts() = queryContacts("${RawContacts.DIRTY}!=0 AND ${RawContacts.DELETED}==0", null)
+    fun findDirtyGroups() = queryGroups("${Groups.DIRTY}!=0 AND ${Groups.DELETED}==0", null)
 
     /**
      * Returns an array of local contacts which don't have a file name yet.
diff --git a/app/src/main/java/com/etesync/syncadapter/resource/LocalCalendar.kt b/app/src/main/java/com/etesync/syncadapter/resource/LocalCalendar.kt
index a54c6022..44ee06e7 100644
--- a/app/src/main/java/com/etesync/syncadapter/resource/LocalCalendar.kt
+++ b/app/src/main/java/com/etesync/syncadapter/resource/LocalCalendar.kt
@@ -99,7 +99,7 @@ class LocalCalendar private constructor(
         val dirty = LinkedList<LocalEvent>()
 
         // get dirty events which are required to have an increased SEQUENCE value
-        for (localEvent in queryEvents("${Events.DIRTY}!=0 AND ${Events.ORIGINAL_ID} IS NULL", null)) {
+        for (localEvent in queryEvents("${Events.DIRTY}!=0 AND ${Events.DELETED}==0 AND ${Events.ORIGINAL_ID} IS NULL", null)) {
             val event = localEvent.event!!
             val sequence = event.sequence
             if (event.sequence == null)      // sequence has not been assigned yet (i.e. this event was just locally created)
diff --git a/app/src/main/java/com/etesync/syncadapter/resource/LocalTaskList.kt b/app/src/main/java/com/etesync/syncadapter/resource/LocalTaskList.kt
index d9ef05e4..24a51e87 100644
--- a/app/src/main/java/com/etesync/syncadapter/resource/LocalTaskList.kt
+++ b/app/src/main/java/com/etesync/syncadapter/resource/LocalTaskList.kt
@@ -68,7 +68,7 @@ class LocalTaskList private constructor(
     override fun findDeleted() = queryTasks("${Tasks._DELETED}!=0", null)
 
     override fun findDirty(): List<LocalTask> {
-        val tasks = queryTasks("${Tasks._DIRTY}!=0", null)
+        val tasks = queryTasks("${Tasks._DIRTY}!=0 AND ${Tasks._DELETED}==0", null)
         for (localTask in tasks) {
             val task = requireNotNull(localTask.task)
             val sequence = task.sequence