diff --git a/lib/mprintf.c b/lib/mprintf.c
index 60fe81fe825aee7f4a60ac6ffe4cb1bdc77c2d41..f30db759e35230cdbfe0a8b28f49872f66ff7ff3 100644
--- a/lib/mprintf.c
+++ b/lib/mprintf.c
@@ -939,15 +939,15 @@ static int dprintf_formatf(
       /* Answer the count of characters written.  */
 #ifdef HAVE_LONGLONG
       if (p->flags & FLAGS_LONGLONG)
-	*(long long int *) p->data.ptr = done;
+	*(long long *) p->data.ptr = (long long)done;
       else
 #endif
 	if (p->flags & FLAGS_LONG)
-	  *(long int *) p->data.ptr = done;
+	  *(long *) p->data.ptr = (long)done;
       else if (!(p->flags & FLAGS_SHORT))
-	*(int *) p->data.ptr = done;
+	*(int *) p->data.ptr = (int)done;
       else
-	*(short int *) p->data.ptr = done;
+	*(short *) p->data.ptr = (short)done;
       break;
 
     default: