diff --git a/ChangeLog b/ChangeLog
index 87801c80a8..d32fed4a93 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Dec 24 23:37:40 2002  TADA Tadashi <sho@spc.gr.jp>
+
+	* lib/cgi.rb (Cookie::parse), lib/cgi-lib.rb (initialize): Do not
+	  pass to split() a bare string longer than 2 characters as
+	  separator.
+
 Tue Dec 24 19:19:24 2002  Tietew <tietew@tietew.net>
 
 	* numeric.c (DBL_MAX_10_EXP): fix typo. [ruby-dev:36826]
diff --git a/lib/cgi-lib.rb b/lib/cgi-lib.rb
index ab4eef1068..bc780ffc4e 100644
--- a/lib/cgi-lib.rb
+++ b/lib/cgi-lib.rb
@@ -181,7 +181,7 @@ class CGI < SimpleDelegator
     super(@inputs)
 
     if ENV.has_key?('HTTP_COOKIE') or ENV.has_key?('COOKIE')
-      (ENV['HTTP_COOKIE'] or ENV['COOKIE']).split("; ").each do |x|
+      (ENV['HTTP_COOKIE'] or ENV['COOKIE']).split(/; /).each do |x|
         key, val = x.split(/=/,2)
         key = CGI::unescape(key)
         val = val.split(/&/).collect{|x|CGI::unescape(x)}.join("\0")
diff --git a/lib/cgi.rb b/lib/cgi.rb
index 714a3a2099..3dc5d51901 100644
--- a/lib/cgi.rb
+++ b/lib/cgi.rb
@@ -698,7 +698,7 @@ convert string charset, and set language to "ja".
     cookies = Hash.new([])
     return cookies unless raw_cookie
 
-    raw_cookie.split('; ').each do |pairs|
+    raw_cookie.split(/; /).each do |pairs|
       name, values = pairs.split('=',2)
       name = CGI::unescape(name)
       values ||= ""