Index: src/Perks/SearchPerk.py
===================================================================
--- src/Perks/SearchPerk.py	(revision 759)
+++ src/Perks/SearchPerk.py	(working copy)
@@ -126,10 +126,12 @@
     if self.perk.chooser is None:
       self.loadChooser('SearchChooser', app_name=self.getAppName(), 
                                       timestamp=timestamp)  
-      # Turn off pointer updating   
+      # Turn off auto pointer updating   
       self.tier.setAutoPointer(False)
     # close the search dialog on second gesture
     else:
+      # Turn auto pointer updating back on
+      self.tier.setAutoPointer(True)
       self.perk.chooser.close()
       self.perk.chooser = None
       
@@ -152,6 +154,8 @@
     '''
     if kind == chooser.START:
       self.perk.chooser = chooser
+    elif kind == chooser.CANCEL:
+      self.tier.setAutoPointer(True)
   
   def executeEnd(self, chooser, **kwargs):
     # turn pointer updating back on.
Index: src/Choosers/SearchChooser.py
===================================================================
--- src/Choosers/SearchChooser.py	(revision 759)
+++ src/Choosers/SearchChooser.py	(working copy)
@@ -103,11 +103,15 @@
     '''
     self.wrap = widget.get_active()  
     
+  def _onCancel(self, widget):
+    # notify perk
+    self._signal(self.CANCEL)
+    self.close()
+    
   def close(self):
     '''
     Closes the chooser, preventing further chooser interaction with the user.
     '''
-    self._signal(self.OK)
     gtk.glade.set_custom_handler(lambda x: None)
     self.dialog.destroy()
       
