diff --git a/ChangeLog b/ChangeLog
index fc44934960..a51d566775 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Mon Apr 28 11:11:38 2008  Yukihiro Matsumoto  <matz@ruby-lang.org>
+
+	* proc.c (method_name): should return symbols instead of strings.
+	  [ruby-dev:34531]
+
 Mon Apr 28 09:02:43 2008  Tanaka Akira  <akr@fsij.org>
 
 	* include/ruby/intern.h (rb_exec_arg_init): declared.
diff --git a/proc.c b/proc.c
index a2c53ce699..57109eff73 100644
--- a/proc.c
+++ b/proc.c
@@ -905,7 +905,7 @@ method_receiver(VALUE obj)
 
 /*
  *  call-seq:
- *     meth.name    => string
+ *     meth.name    => symbol
  *  
  *  Returns the name of the method.
  */
@@ -916,7 +916,7 @@ method_name(VALUE obj)
     struct METHOD *data;
 
     Data_Get_Struct(obj, struct METHOD, data);
-    return rb_str_dup(rb_id2str(data->id));
+    return ID2SYM(data->id);
 }
 
 /*
diff --git a/test/ruby/test_m17n.rb b/test/ruby/test_m17n.rb
index dfb00ba657..3fd32ae92a 100644
--- a/test/ruby/test_m17n.rb
+++ b/test/ruby/test_m17n.rb
@@ -1041,8 +1041,8 @@ class TestM17N < Test::Unit::TestCase
      mu = method(u("\xc2\xa1"))
      assert_not_equal(me.name, mu.name)
      assert_not_equal(me.inspect, mu.inspect)
-     assert_equal(e("\xc2\xa1"), me.name)
-     assert_equal(u("\xc2\xa1"), mu.name)
+     assert_equal(e("\xc2\xa1"), me.name.to_s)
+     assert_equal(u("\xc2\xa1"), mu.name.to_s)
   end
 
   def test_symbol
diff --git a/test/ruby/test_method.rb b/test/ruby/test_method.rb
index 064e052715..ad05e04aba 100644
--- a/test/ruby/test_method.rb
+++ b/test/ruby/test_method.rb
@@ -107,7 +107,7 @@ class TestMethod < Test::Unit::TestCase
     def o.foo; end
     m = o.method(:foo)
     assert_equal(o, m.receiver)
-    assert_equal("foo", m.name)
+    assert_equal(:foo, m.name)
     assert_equal(class << o; self; end, m.owner)
   end
 
diff --git a/version.h b/version.h
index 8b305fce66..9477735e44 100644
--- a/version.h
+++ b/version.h
@@ -1,7 +1,7 @@
 #define RUBY_VERSION "1.9.0"
-#define RUBY_RELEASE_DATE "2008-04-27"
+#define RUBY_RELEASE_DATE "2008-04-28"
 #define RUBY_VERSION_CODE 190
-#define RUBY_RELEASE_CODE 20080427
+#define RUBY_RELEASE_CODE 20080428
 #define RUBY_PATCHLEVEL 0
 
 #define RUBY_VERSION_MAJOR 1
@@ -9,7 +9,7 @@
 #define RUBY_VERSION_TEENY 0
 #define RUBY_RELEASE_YEAR 2008
 #define RUBY_RELEASE_MONTH 4
-#define RUBY_RELEASE_DAY 27
+#define RUBY_RELEASE_DAY 28
 
 #ifdef RUBY_EXTERN
 RUBY_EXTERN const char ruby_version[];