var iTunes = require('../')
  , conn   = null

iTunes.createConnection(onConn);

function onConn (err, c) {
  if (err) throw err;
  conn = c;
  conn.selection( onSelection );
}

function onSelection (err, selection) {
  if (err) throw err;
  if (selection.length > 0) {
    var track = selection[0];
    track.artworks(onArtworks);
  } else {
    console.log('There are no tracks currently selected...');
  }
}

function onArtworks (err, artworks) {
  if (err) throw err;
  if (artworks.length > 0) {
    console.log(artworks);
    artworks[0].data(function (err, data) {
      if (err) throw err;
      console.log(data.constructor.name);
      console.log(data.length);
    });
  } else {
    console.log('The selected track does not have any album artwork...');
  }
}

@@ -664,16 +664,412 @@
 length);
+%0A%0A      // A test to make sure that gargabe collecting one of the Buffers doesn't%0A      // cause a seg fault. Invoke node with '--expose_gc' to force garbage coll%0A      data = null;%0A      setTimeout(function() %7B%0A        if (typeof gc != 'undefined') %7B%0A          console.log('invoking gc()');%0A          gc();%0A        %7D%0A      %7D, 1000);%0A      setTimeout(function() %7B console.log(%22Done!%22); %7D, 10000);
 %0A    %7D);

Add a test case to ensure that the memory leak is fixed.