Index: src/org/jruby/RubyModule.java
===================================================================
RCS file: /cvsroot/jruby/jruby/src/org/jruby/RubyModule.java,v
retrieving revision 1.54.2.4
diff -u -r1.54.2.4 RubyModule.java
--- src/org/jruby/RubyModule.java	3 Feb 2006 21:00:04 -0000	1.54.2.4
+++ src/org/jruby/RubyModule.java	10 Feb 2006 01:07:59 -0000
@@ -503,7 +503,11 @@
             while (p != null) {
                 IRubyObject constant = p.getConstantAt(name);
             
-                // Fixme: Autoloading not in this....
+                if (constant == null) {
+                    if (getRuntime().getLoadService().autoload(name) != null) {
+                        continue;
+                    }
+                }
                 if (constant != null) {
                     if (exclude && p == objectClass && this != objectClass) {
                         getRuntime().getWarnings().warn("toplevel constant " + name + 
Index: src/org/jruby/RubyObjectSpace.java
===================================================================
RCS file: /cvsroot/jruby/jruby/src/org/jruby/RubyObjectSpace.java,v
retrieving revision 1.7.2.1
diff -u -r1.7.2.1 RubyObjectSpace.java
--- src/org/jruby/RubyObjectSpace.java	2 Jan 2006 07:07:09 -0000	1.7.2.1
+++ src/org/jruby/RubyObjectSpace.java	10 Feb 2006 01:07:59 -0000
@@ -48,14 +48,22 @@
         objectSpaceModule.defineModuleFunction("garbage_collect", callbackFactory.getSingletonMethod("garbage_collect"));
         objectSpaceModule.defineModuleFunction("define_finalizer", 
         		callbackFactory.getOptSingletonMethod("define_finalizer"));
+        objectSpaceModule.defineModuleFunction("undefine_finalizer", 
+                callbackFactory.getOptSingletonMethod("undefine_finalizer"));
 
         return objectSpaceModule;
     }
 
-    // TODO: Figure out feasibility of this...
+    // FIXME: Figure out feasibility of this...
     public static IRubyObject define_finalizer(IRubyObject recv, IRubyObject[] args) {
-    	// Put in to fake tempfile.rb out.
-    	return recv;
+        // Put in to fake tempfile.rb out.
+        return recv;
+    }
+
+    // FIXME: Figure out feasibility of this...
+    public static IRubyObject undefine_finalizer(IRubyObject recv, IRubyObject[] args) {
+        // Put in to fake other stuff out.
+        return recv;
     }
     
     public static IRubyObject each_object(IRubyObject recv, IRubyObject[] args) {
Index: src/org/jruby/runtime/ThreadContext.java
===================================================================
RCS file: /cvsroot/jruby/jruby/src/org/jruby/runtime/ThreadContext.java,v
retrieving revision 1.44.2.8
diff -u -r1.44.2.8 ThreadContext.java
--- src/org/jruby/runtime/ThreadContext.java	3 Feb 2006 21:00:04 -0000	1.44.2.8
+++ src/org/jruby/runtime/ThreadContext.java	10 Feb 2006 01:08:00 -0000
@@ -569,8 +569,9 @@
           //if (NIL_P(klass)) return rb_const_get(CLASS_OF(self), id);
           result = klass.getConstantAt(name);
           if (result == null) {
-              // Autoload here....
-              // continue
+              if (runtime.getLoadService().autoload(name) != null) {
+                  continue;
+              }
           } else {
               return result;
           }
Index: src/org/jruby/runtime/load/LoadService.java
===================================================================
RCS file: /cvsroot/jruby/jruby/src/org/jruby/runtime/load/LoadService.java,v
retrieving revision 1.6.2.7
diff -u -r1.6.2.7 LoadService.java
--- src/org/jruby/runtime/load/LoadService.java	9 Feb 2006 23:34:15 -0000	1.6.2.7
+++ src/org/jruby/runtime/load/LoadService.java	10 Feb 2006 01:08:00 -0000
@@ -107,7 +107,7 @@
     }
 
     private void addPath(String path) {
-        loadPath.add(runtime.newString(path));
+        loadPath.add(runtime.newString(path.replace('\\', '/')));
     }
 
     public void load(String file) {
@@ -176,7 +176,7 @@
     }
 
     public IRubyObject autoload(String name) {
-        IAutoloadMethod loadMethod = (IAutoloadMethod)autoloadMap.get(name);
+        IAutoloadMethod loadMethod = (IAutoloadMethod)autoloadMap.remove(name);
         if (loadMethod != null) {
             return loadMethod.load(runtime, name);
         }
