Hello, seems that the latest CVS version of Ruby 1.8.0 does exactly what you implemented: irb(main):001:0> require 'cgi' => true irb(main):002:0> q=CGI.new (offline mode: enter name=value pairs on standard input) name=francois like=ruby like=linux => #<CGI:0x4028a480 @output_cookies=nil, @output_hidden=nil, @cookies={}, @params={"name"=>["francois"], "like"=>["ruby", "linux"]}> irb(main):003:0> q["name"] => "francois" irb(main):004:0> q.params["like"] => ["ruby", "linux"] irb(main):005:0> q["like"] => "ruby" irb(main):006:0> VERSION => "1.8.0" irb(main):007:0> RELEASE_DATE => "2003-01-20" ... and there is no more problem with CGI::Session. Francois