diff --git a/src/cpp.c b/src/cpp.c
index f333e800972f4d22c660567104c11e2e861e912e..427391cd4ce7f7e3761ee99704bd52819901df30 100644
--- a/src/cpp.c
+++ b/src/cpp.c
@@ -1978,7 +1978,9 @@ static void check_constant(struct cpp *this,
 
       if(res)
       {
-	res=do_safe_index_call(binary_findstring(data, dlen));
+        struct pike_string *s=make_shared_binary_string(data, dlen)
+	res=do_safe_index_call(s);
+        free_string(s);
       }
     }else{
       cpp_error(this, "Garbage characters in constant()\n");