--- a/lib/nfkc.c
+++ b/lib/nfkc.c
@@ -362,7 +362,7 @@ g_unichar_to_utf8 (gunichar c, gchar * outbuf)
  *               This value must be freed with g_free().
  **/
 static gunichar *
-g_utf8_to_ucs4_fast (const gchar * str, glong len, glong * items_written)
+g_utf8_to_ucs4_fast (const gchar * str, gssize len, gsize * items_written)
 {
   gunichar *result;
   gsize n_chars, i;
@@ -1011,7 +1011,7 @@ stringprep_utf8_to_ucs4 (const char *str, ssize_t len, size_t * items_written)
   if (u8_check ((const uint8_t *) str, n))
     return NULL;
 
-  return g_utf8_to_ucs4_fast (str, (glong) len, (glong *) items_written);
+  return g_utf8_to_ucs4_fast (str, len, items_written);
 }
 
 /**
