diff --git a/src/org/jruby/Main.java b/src/org/jruby/Main.java
index d989a6a..1166792 100644
--- a/src/org/jruby/Main.java
+++ b/src/org/jruby/Main.java
@@ -162,6 +162,16 @@ public class Main {
         InputStream in   = config.getScriptSource();
         String filename  = config.displayedFileName();
         Ruby runtime     = Ruby.newInstance(config);
+        
+        // set thread context JRuby classloader here, for the main thread
+        try {
+            Thread.currentThread().setContextClassLoader(runtime.getJRubyClassLoader());
+        } catch (SecurityException se) {
+            // can't set TC classloader
+            if (runtime.getInstanceConfig().isVerbose()) {
+                System.err.println("WARNING: Security restrictions disallowed setting context classloader for main thread.");
+            }
+        }
 
         if (in == null) {
             // no script to run, return success below
diff --git a/src/org/jruby/internal/runtime/RubyNativeThread.java b/src/org/jruby/internal/runtime/RubyNativeThread.java
index e857634..243f028 100644
--- a/src/org/jruby/internal/runtime/RubyNativeThread.java
+++ b/src/org/jruby/internal/runtime/RubyNativeThread.java
@@ -64,8 +64,21 @@ public class RubyNativeThread extends Thread {
         return rubyThread;
     }
     
+    private static boolean warnedAboutTC = false;
+    
     public void run() {
         ThreadContext context = runtime.getThreadService().registerNewThread(rubyThread);
+        
+        // set thread context JRuby classloader here, for Ruby-owned thread
+        try {
+            Thread.currentThread().setContextClassLoader(runtime.getJRubyClassLoader());
+        } catch (SecurityException se) {
+            // can't set TC classloader
+            if (!warnedAboutTC && runtime.getInstanceConfig().isVerbose()) {
+                System.err.println("WARNING: Security restrictions disallowed setting context classloader for Ruby threads.");
+            }
+        }
+        
         context.preRunThread(currentFrame);
 
         // Call the thread's code

