Index: src/org/jruby/RubyKernel.java
===================================================================
RCS file: /cvsroot/jruby/jruby/src/org/jruby/RubyKernel.java,v
retrieving revision 1.44
diff -u -r1.44 RubyKernel.java
--- src/org/jruby/RubyKernel.java	21 Mar 2006 04:34:10 -0000	1.44
+++ src/org/jruby/RubyKernel.java	25 Mar 2006 04:58:59 -0000
@@ -65,6 +65,7 @@
     public static RubyModule createKernelModule(IRuby runtime) {
         RubyModule module = runtime.defineModule("Kernel");
         CallbackFactory callbackFactory = runtime.callbackFactory(RubyKernel.class);
+        CallbackFactory objectCallbackFactory = runtime.callbackFactory(RubyObject.class);
 
         module.defineModuleFunction("Array", callbackFactory.getSingletonMethod("new_array", IRubyObject.class));
         module.defineModuleFunction("Float", callbackFactory.getSingletonMethod("new_float", IRubyObject.class));
@@ -135,6 +136,49 @@
         
         // Defined p411 Pickaxe 2nd ed.
         module.defineModuleFunction("singleton_method_added", callbackFactory.getSingletonMethod("singleton_method_added", IRubyObject.class));
+        
+        // Object methods
+        module.definePublicModuleFunction("==", objectCallbackFactory.getMethod("equal", IRubyObject.class));
+        module.defineAlias("===", "==");
+        module.defineAlias("eql?", "==");
+        module.definePublicModuleFunction("to_s", objectCallbackFactory.getMethod("to_s"));
+        module.definePublicModuleFunction("nil?", objectCallbackFactory.getMethod("nil_p"));
+        module.definePublicModuleFunction("to_a", objectCallbackFactory.getMethod("to_a"));
+        module.definePublicModuleFunction("hash", objectCallbackFactory.getMethod("hash"));
+        module.definePublicModuleFunction("id", objectCallbackFactory.getMethod("id"));
+        module.defineAlias("__id__", "id");
+        module.defineAlias("object_id", "id");
+        module.definePublicModuleFunction("is_a?", objectCallbackFactory.getMethod("kind_of", IRubyObject.class));
+        module.defineAlias("kind_of?", "is_a?");
+        module.definePublicModuleFunction("dup", objectCallbackFactory.getMethod("dup"));
+        module.definePublicModuleFunction("equal?", objectCallbackFactory.getMethod("same", IRubyObject.class));
+        module.definePublicModuleFunction("type", objectCallbackFactory.getMethod("type_deprecated"));
+        module.definePublicModuleFunction("class", objectCallbackFactory.getMethod("type"));
+        module.definePublicModuleFunction("inspect", objectCallbackFactory.getMethod("inspect"));
+        module.definePublicModuleFunction("=~", objectCallbackFactory.getMethod("match", IRubyObject.class));
+        module.definePublicModuleFunction("clone", objectCallbackFactory.getMethod("rbClone"));
+        module.definePublicModuleFunction("display", objectCallbackFactory.getOptMethod("display"));
+        module.definePublicModuleFunction("extend", objectCallbackFactory.getOptMethod("extend"));
+        module.definePublicModuleFunction("freeze", objectCallbackFactory.getMethod("freeze"));
+        module.definePublicModuleFunction("frozen?", objectCallbackFactory.getMethod("frozen"));
+        module.defineModuleFunction("initialize_copy", objectCallbackFactory.getMethod("initialize_copy", IRubyObject.class));
+        module.definePublicModuleFunction("instance_eval", objectCallbackFactory.getOptMethod("instance_eval"));
+        module.definePublicModuleFunction("instance_of?", objectCallbackFactory.getMethod("instance_of", IRubyObject.class));
+        module.definePublicModuleFunction("instance_variables", objectCallbackFactory.getMethod("instance_variables"));
+        module.definePublicModuleFunction("instance_variable_get", objectCallbackFactory.getMethod("instance_variable_get", IRubyObject.class));
+        module.definePublicModuleFunction("instance_variable_set", objectCallbackFactory.getMethod("instance_variable_set", IRubyObject.class, IRubyObject.class));
+        module.definePublicModuleFunction("method", objectCallbackFactory.getMethod("method", IRubyObject.class));
+        module.definePublicModuleFunction("methods", objectCallbackFactory.getOptMethod("methods"));
+        module.definePublicModuleFunction("private_methods", objectCallbackFactory.getMethod("private_methods"));
+        module.definePublicModuleFunction("protected_methods", objectCallbackFactory.getMethod("protected_methods"));
+        module.definePublicModuleFunction("public_methods", objectCallbackFactory.getOptMethod("public_methods"));
+        module.definePublicModuleFunction("respond_to?", objectCallbackFactory.getOptMethod("respond_to"));
+        module.definePublicModuleFunction("send", objectCallbackFactory.getOptMethod("send"));
+        module.defineAlias("__send__", "send");
+        module.definePublicModuleFunction("singleton_methods", objectCallbackFactory.getMethod("singleton_methods"));
+        module.definePublicModuleFunction("taint", objectCallbackFactory.getMethod("taint"));
+        module.definePublicModuleFunction("tainted?", objectCallbackFactory.getMethod("tainted"));
+        module.definePublicModuleFunction("untaint", objectCallbackFactory.getMethod("untaint"));
 
         return module;
     }
Index: src/org/jruby/RubyModule.java
===================================================================
RCS file: /cvsroot/jruby/jruby/src/org/jruby/RubyModule.java,v
retrieving revision 1.102
diff -u -r1.102 RubyModule.java
--- src/org/jruby/RubyModule.java	20 Mar 2006 15:08:45 -0000	1.102
+++ src/org/jruby/RubyModule.java	25 Mar 2006 04:59:00 -0000
@@ -524,6 +524,14 @@
         defineSingletonMethod(name, method);
     }
 
+    /** rb_define_module_function
+     *
+     */
+    public void definePublicModuleFunction(String name, Callback method) {
+        defineMethod(name, method);
+        defineSingletonMethod(name, method);
+    }
+
     private IRubyObject getConstantInner(String name, boolean exclude) {
         IRubyObject objectClass = getRuntime().getObject();
         boolean retryForModule = false;
Index: src/org/jruby/runtime/builtin/meta/ObjectMetaClass.java
===================================================================
RCS file: /cvsroot/jruby/jruby/src/org/jruby/runtime/builtin/meta/ObjectMetaClass.java,v
retrieving revision 1.10
diff -u -r1.10 ObjectMetaClass.java
--- src/org/jruby/runtime/builtin/meta/ObjectMetaClass.java	10 Feb 2006 21:53:25 -0000	1.10
+++ src/org/jruby/runtime/builtin/meta/ObjectMetaClass.java	25 Mar 2006 04:59:00 -0000
@@ -79,48 +79,6 @@
     
     protected class ObjectMeta extends Meta {
 	    protected void initializeClass() {
-	        defineMethod("==", Arity.singleArgument(), "equal");
-	        defineAlias("===", "==");
-	        defineMethod("to_s", Arity.noArguments());
-	        defineMethod("nil?", Arity.noArguments(), "nil_p");
-	        defineMethod("to_a", Arity.noArguments());
-	        defineMethod("hash", Arity.noArguments());
-	        defineMethod("id", Arity.noArguments());
-	        defineAlias("__id__", "id");
-	        defineAlias("object_id", "id");
-	        defineMethod("is_a?", Arity.singleArgument(), "kind_of");
-	        defineAlias("kind_of?", "is_a?");
-	        defineMethod("dup", Arity.noArguments());
-	        defineAlias("eql?", "==");
-	        defineMethod("equal?", Arity.singleArgument(), "same");
-	        defineMethod("type", Arity.noArguments(), "type_deprecated");
-	        defineMethod("class", Arity.noArguments(), "type");
-	        defineMethod("inspect", Arity.noArguments());
-	        defineMethod("=~", Arity.singleArgument(), "match");
-	        defineMethod("clone", Arity.noArguments(), "rbClone");
-	        defineMethod("display", Arity.optional(), "display");
-	        defineMethod("extend", Arity.optional(), "extend");
-	        defineMethod("freeze", Arity.noArguments());
-	        defineMethod("frozen?", Arity.noArguments(), "frozen");
-	        defineMethod("initialize_copy", Arity.singleArgument(), "initialize_copy");
-	        defineMethod("instance_eval", Arity.optional());
-	        defineMethod("instance_of?", Arity.singleArgument(), "instance_of");
-	        defineMethod("instance_variables", Arity.noArguments());
-	        defineMethod("instance_variable_get", Arity.singleArgument());
-	        defineMethod("instance_variable_set", Arity.twoArguments());
-	        defineMethod("method", Arity.singleArgument(), "method");
-	        defineMethod("methods", Arity.optional());
-	        defineMethod("private_methods", Arity.noArguments());
-	        defineMethod("protected_methods", Arity.noArguments());
-	        defineMethod("public_methods", Arity.optional());
-	        defineMethod("respond_to?", Arity.optional(), "respond_to");
-	        defineMethod("send", Arity.optional());
-	        defineAlias("__send__", "send");
-	        defineMethod("singleton_methods", Arity.noArguments());
-	        defineMethod("taint", Arity.noArguments());
-	        defineMethod("tainted?", Arity.noArguments(), "tainted");
-	        defineMethod("untaint", Arity.noArguments());
-	        
 	        definePrivateMethod("initialize", Arity.optional());
 	        definePrivateMethod("inherited", Arity.singleArgument());
 		}
