diff --git a/src/cpp.c b/src/cpp.c
index a82db4c37d3b26fff6f23da7f983e81d1aa91f98..573593402dcd8c270b9531b3c72064f312a76f21 100644
--- a/src/cpp.c
+++ b/src/cpp.c
@@ -2049,6 +2049,7 @@ void f_cpp(INT32 args)
     if(TYPEOF(*charset_sv) == T_STRING) {
       charset = charset_sv->u.string;
       push_string(data);
+      data = NULL;
       ref_push_string(charset);
       if (!safe_apply_handler ("decode_charset", this.handler,
 			       this.compat_handler, 2, BIT_STRING)) {