diff --git a/Lib/idlelib/SearchDialog.py b/Lib/idlelib/SearchDialog.py
index 0f0cb18..8d275c4 100644
--- a/Lib/idlelib/SearchDialog.py
+++ b/Lib/idlelib/SearchDialog.py
@@ -34,9 +34,9 @@
     def find_again(self, text):
         if not self.engine.getpat():
             self.open(text)
-            return 0
+            return False
         if not self.engine.getprog():
-            return 0
+            return False
         res = self.engine.search_text(text)
         if res:
             line, m = res
@@ -48,17 +48,17 @@
                 sellast = text.index("sel.last")
                 if selfirst == first and sellast == last:
                     text.bell()
-                    return 0
+                    return False
             except TclError:
                 pass
             text.tag_remove("sel", "1.0", "end")
             text.tag_add("sel", first, last)
             text.mark_set("insert", self.engine.isback() and first or last)
             text.see("insert")
-            return 1
+            return True
         else:
             text.bell()
-            return 0
+            return False
 
     def find_selection(self, text):
         pat = text.get("sel.first", "sel.last")
