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