diff --git a/src/interpreter.h b/src/interpreter.h
index 0019311296fab656f688f282a9a93ecb613b28b8..d2640d5ad2821651c8070ace244a31d7672ddcac 100644
--- a/src/interpreter.h
+++ b/src/interpreter.h
@@ -1309,7 +1309,7 @@ static int eval_instruction(unsigned char *pc)
 	  free_string(sval_type);
 
 	  t = describe_type(sp[-2].u.string);
-	  SET_ONERRROR(tmp, free_string, t);
+	  SET_ONERROR(tmp, do_free_string, t);
 	  bad_arg_error("soft_cast", sp-1, 1, 1, t->str, sp-1,
 			"Assertion failed in soft_cast(). Expected %s\n",
 			t->str);