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