diff --git a/src/iri.c b/src/iri.c
index d5c47144..351357da 100644
--- a/src/iri.c
+++ b/src/iri.c
@@ -191,7 +191,13 @@ do_conversion (const char *tocode, const char *fromcode, char const *in_org, siz
           tooshort++;
           done = len;
           len = done + inlen * 2;
-          s = xrealloc (s, len + 1);
+          char *s_new = xrealloc (s, len + 1);
+          if (s_new != s)
+            {
+              /* Help valgrind by initializing additional memory. */
+              s = s_new;
+              memset(s + done, 0, inlen * 2 + 1);
+            }
           *out = s + done - outlen;
           outlen += inlen * 2;
         }