Have you tried setting [$HistoryLength][1] to zero:

    $HistoryLength=0;

The memory is not freed, because the previous data is still available by Out[nn] or %.

  [1]: http://reference.wolfram.com/mathematica/ref/$HistoryLength.html