diff --git a/src/xpdev/xpsem.c b/src/xpdev/xpsem.c
index 2e8c5308903815dc35ab19744422e8534eefc89d..43ad2a29c980f2a0406e90c9f69e3937c3bf5005 100644
--- a/src/xpdev/xpsem.c
+++ b/src/xpdev/xpsem.c
@@ -244,7 +244,7 @@ xp_sem_setvalue(xp_sem_t *sem, int sval)
 	_SEM_CHECK_VALIDITY(sem);
 
 	pthread_mutex_lock(&(*sem)->lock);
-	(int)(*sem)->count=sval;
+	(*sem)->count=(u_int32_t)sval;
 	if (((*sem)->nwaiters > 0) && sval) {
 		/*
 		 * We must use pthread_cond_broadcast() rather than