Created attachment 620170 [details] My patch for the bug. Description of problem: The code in libvirt/stream.c registers the function Stream::recv as having two parameters while in reality it has just one. Thus, when you call it, you must supply a bogus second parameter: stream = conn.stream vol.download stream, 0, 0, 0 data = stream.recv(1024, 0) while it should be just data = stream.recv(1024) Version-Release number of selected component (if applicable): ruby-libvirt commit a8d79e06419efadc86fc16e74b50bfc406f9746d Date: Thu Oct 13 16:23:28 2011 -0400