diff --git a/lib/celluloid/thread_handle.rb b/lib/celluloid/thread_handle.rb
index <HASH>..<HASH> 100644
--- a/lib/celluloid/thread_handle.rb
+++ b/lib/celluloid/thread_handle.rb
@@ -1,13 +1,8 @@
-require 'forwardable'
-
 module Celluloid
   # An abstraction around threads from the InternalPool which ensures we don't
   # accidentally do things to threads which have been returned to the pool,
   # such as, say, killing them
   class ThreadHandle
-    extend Forwardable
-    def_delegators :@thread, :backtrace
-
     def initialize
       @mutex = Mutex.new
       @join  = ConditionVariable.new
@@ -40,5 +35,14 @@ module Celluloid
       @mutex.synchronize { @join.wait(@mutex) if @thread }
       self
     end
+
+    # Obtain the backtrace for this thread
+    def backtrace
+      @thread.backtrace
+    rescue NoMethodError
+      # undefined method `backtrace' for nil:NilClass
+      # Swallow this in case this ThreadHandle was terminated and @thread was
+      # set to nil
+    end
   end
 end
Properly handle backtraces of exited ThreadHandles