diff --git a/dlls/imm32/imm.c b/dlls/imm32/imm.c index 284d49eb840..5aee6ea78f7 100644 --- a/dlls/imm32/imm.c +++ b/dlls/imm32/imm.c @@ -2665,7 +2665,8 @@ BOOL WINAPI ImmUnlockIMCC(HIMCC imcc) IMCCInternal *internal; internal = imcc; - internal->dwLock --; + if (internal->dwLock) + internal->dwLock --; return (internal->dwLock!=0); } diff --git a/dlls/imm32/tests/imm32.c b/dlls/imm32/tests/imm32.c index 9d41cc78208..26101a4764f 100644 --- a/dlls/imm32/tests/imm32.c +++ b/dlls/imm32/tests/imm32.c @@ -728,9 +728,9 @@ static void test_ImmGetIMCCLockCount(void) count = ImmGetIMCCLockCount(imcc); ok(count == 0, "expect 0, returned %d\n", count); ret = ImmUnlockIMCC(imcc); - todo_wine ok(ret == FALSE, "expect FALSE, ret %d\n", ret); + ok(ret == FALSE, "expect FALSE, ret %d\n", ret); count = ImmGetIMCCLockCount(imcc); - todo_wine ok(count == 0, "expect 0, returned %d\n", count); + ok(count == 0, "expect 0, returned %d\n", count); ImmDestroyIMCC(imcc); }