diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c
index a00a159d2490bc52ed80a27d552021a40bb28df1..3037e584639f629729f8f6a32e300382a0085fb9 100644
--- a/dlls/ntdll/sync.c
+++ b/dlls/ntdll/sync.c
@@ -1371,9 +1371,10 @@ NTSTATUS WINAPI NtRemoveIoCompletionEx( HANDLE port, FILE_IO_COMPLETION_INFORMAT
             if (i++ >= count) break;
         }
 
-        if (i && ret == STATUS_PENDING)
+        if (i || ret != STATUS_PENDING)
         {
-            ret = STATUS_SUCCESS;
+            if (ret == STATUS_PENDING)
+                ret = STATUS_SUCCESS;
             break;
         }