diff --git a/lib/log4jruby/logger.rb b/lib/log4jruby/logger.rb
index <HASH>..<HASH> 100644
--- a/lib/log4jruby/logger.rb
+++ b/lib/log4jruby/logger.rb
@@ -86,7 +86,7 @@ module Log4jruby
     end
 
     def warn(object = nil, &block)
-      if @logger.isWarnEnabled
+      if @logger.isEnabledFor(Java::org.apache.log4j.Priority::WARN)
         with_context(:warn, object, &block)
       end
     end
diff --git a/spec/log4jruby/logger_spec.rb b/spec/log4jruby/logger_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/log4jruby/logger_spec.rb
+++ b/spec/log4jruby/logger_spec.rb
@@ -260,7 +260,7 @@ module Log4jruby
 
     describe '#warn' do
       it "should avoid parameter evaluation if given block and warn level is not enabled" do
-        @log4j.should_receive(:isWarnEnabled).and_return(false)
+        @log4j.should_receive(:isEnabledFor).and_return(false)
         subject.warn { raise 'block was called' } 
       end
     end
Log4j has no isWarnEnabled. Need to use isEnabledFor instead