http://www.splitbrain.org/projects/file_icons

Released to the Public Domain
Free to use. Provided as is. No warranties.

Note: The big majority of icons where created by the creators listed
      below. Only a few ones where found on the net. They were too
      widespread to determine the original author and thus were
      considered public domain.
      If you are the author of one of those icons just send a short
      mail to either be included in the list below or have the icon
      removed from the package.

Creators:

  Andreas Gohr <andi@splitbrain.org>
  Michael Klier <chi@chimeric.de>
  Andreas Barton <andreas.barton@web.de>
  Hubert Chathi <hubert@uhoreg.ca>
  Johan Koehne <johankohne@gmail.com>
  Rudi von Staden <rudivs@iafrica.com>
  Daniel Darvish <ddarvish@hibm.org>
  Andy Pascall <apascall@engineering.ucsb.edu>
  Seth <seth.holcomb@gmail.com>
  David Carella <david.carella@gmail.com>
  Tom N. Harris <telliamed@fastmail.us>
  Brandon Carmon Colvin <b.carmon.colvin@gmail.com>
