when :list_buffers
           bm.spawn_unless_exists("Buffer List") { BufferListMode.new }
         when :list_contacts
-          bm.spawn_unless_exists("Contact List") { ContactListMode.new }
+          b = bm.spawn_unless_exists("Contact List") { ContactListMode.new }
+          b.mode.load_more b.content_height
         when :search
           text = bm.ask :search, "query: "
           next unless text && text !~ /^\s*$/
           when 1
             m = nil
             Index.each_id_by_date(:label => :draft) { |mid, builder| m = builder.call }
-            BufferManager.spawn "Edit message", ResumeMode.new(m)
+            r = ResumeMode.new(m)
+            BufferManager.spawn "Edit message", r
+            r.edit
           else
             b = BufferManager.spawn_unless_exists(:draft) do
               mode = LabelSearchResultsMode.new [:draft]
 
   def initialize mode = :regular
     @mode = mode
     @tags = Tagger.new self
-    reload
+    @num = 0
     super()
   end
 
   def apply_to_tagged; @tags.apply_to_tagged; end
 
   def load; regen_text; end
-  def load_more
-    @num += LOAD_MORE_CONTACTS_NUM
+  def load_more num=LOAD_MORE_CONTACTS_NUM
+    @num += num
     regen_text
-    BufferManager.flash "Loaded #{LOAD_MORE_CONTACTS_NUM} more contacts."
+    BufferManager.flash "Added #{num} contacts."
   end
 
   def multi_select people
 
   def reload
     @tags.drop_all_tags
-    @num = LOAD_MORE_CONTACTS_NUM
     load
   end