I decided to cheat, here is my solution: bschroed@oerfi:~/svn/projekte/tumblezip$ ./tumblezip.rb tumblezip.rb >tumblezip.tumbled.rbbschroed@oerfi:~/svn/projekte/tumblezip$ cat tumblezip.tumbled.rbrequire "zlib"puts Zlib::Inflate.inflate(DATA.read)__END__xSV/-.O/*M*J-,,JUP¡±LR*(-)VP +4u¡¤@@U,KI,I.!zE(c))0J(r)~.J:FT1}/bschroed@oerfi:~/svn/projekte/tumblezip$ ruby tumblezip.tumbled.rb#!/usr/bin/ruby require 'zlib' puts %(require "zlib"), %(puts Zlib::Inflate.inflate(DATA.read)), "__END__", Zlib::Deflate.deflate(ARGF.read) It definitely fails on human readability, though compression and dryis quite good ;-) cheers, Brian --http://ruby.brian-schroeder.de/ Stringed instrument chords: http://chordlist.brian-schroeder.de/