diff --git a/lib/devise/models/timeoutable.rb b/lib/devise/models/timeoutable.rb
index <HASH>..<HASH> 100644
--- a/lib/devise/models/timeoutable.rb
+++ b/lib/devise/models/timeoutable.rb
@@ -12,13 +12,12 @@ module Devise
 
       # Checks whether the user session has expired based on configured time.
       def timeout?(last_access)
-        last_access && last_access <= timeout.ago.utc
+        last_access && last_access <= self.class.timeout.ago.utc
       end
 
       module ClassMethods
+        Devise::Models.config(self, :timeout)
       end
-
-      Devise::Models.config(self, :timeout)
     end
   end
 end
diff --git a/test/models_test.rb b/test/models_test.rb
index <HASH>..<HASH> 100644
--- a/test/models_test.rb
+++ b/test/models_test.rb
@@ -115,7 +115,7 @@ class ActiveRecordTest < ActiveSupport::TestCase
   end
 
   test 'set a default value for timeout' do
-    assert_equal 15.minutes, Configurable.new.timeout
+    assert_equal 15.minutes, Configurable.timeout
   end
 
   test 'set null fields on migrations' do
Updating timeoutable with last devise changes.