really fix memory leak & erlang: call bug