diff --git a/lib/sup/mode.rb b/lib/sup/mode.rb
index <HASH>..<HASH> 100644
--- a/lib/sup/mode.rb
+++ b/lib/sup/mode.rb
@@ -46,7 +46,7 @@ class Mode
   end
 
   def resolve_input c
-    ancestors.each do |klass| # try all keymaps in order of ancestry
+    self.class.ancestors.each do |klass| # try all keymaps in order of ancestry
       next unless @@keymaps.member?(klass)
       action = BufferManager.resolve_input_with_keymap c, @@keymaps[klass]
       return action if action
@@ -62,7 +62,7 @@ class Mode
 
   def help_text
     used_keys = {}
-    ancestors.map do |klass|
+    self.class.ancestors.map do |klass|
       km = @@keymaps[klass] or next
       title = "Keybindings from #{Mode.make_name klass.name}"
       s = <<EOS
diff --git a/lib/sup/util.rb b/lib/sup/util.rb
index <HASH>..<HASH> 100644
--- a/lib/sup/util.rb
+++ b/lib/sup/util.rb
@@ -182,17 +182,6 @@ class Module
 end
 
 class Object
-  def ancestors
-    ret = []
-    klass = self.class
-
-    until klass == Object
-      ret << klass
-      klass = klass.superclass
-    end
-    ret
-  end
-
   ## "k combinator"
   def returning x; yield x; x; end
ancestors are built in, now also checks Kernel and BasicObject for keymaps