--- gradint.py	2009-12-17 17:38:29.000000000 +0000
+++ /tmp/Gradint.app/gradint.py	2009-12-17 17:52:45.000000000 +0000
@@ -4320,7 +4320,7 @@
             try: os.remove(filename)
             except: pass
         self.cancelEdit(editEntry,row,col,filename)
-        if row+1 < self.addMoreRow and (row+1,col+1) in self.coords2buttons: self.scrollIntoView(self.coords2buttons[(row+1,col+1)]) # focus the next "synth" button if it exists (TODO do we want to press it as well, like file renaming?)
+        if row+1 < self.addMoreRow and (row+1,col+1) in self.coords2buttons: self.scrollIntoView(self.coords2buttons[(row+1,col+1)]) # focus the next "synth" button if it exists (don't press it as well like file renaming because it might be a variant etc, TODO can we skip variants?)
     def cancelEdit(self,editEntry,row,col,filename):
         editEntry.grid_forget()
         labelAdded = self.addSynthLabel(filename,row,col)
@@ -5175,9 +5175,14 @@
 
 def focusButton(button):
     button.focus()
-    if macsound: # focus() should display the fact on Windows and Linux, but doesn't on OS X - need to make it default as well
-        try: button.config(state="active")
-        except: pass # maybe not a button
+    if macsound: # focus() should display the fact on Windows and Linux, but doesn't on OS X so:
+        def flashButton(button,state):
+            try: button.config(state=state)
+            except: pass # maybe not a button
+        for t in range(250,1000,250): # (NB avoid epilepsy's 5-30Hz!)
+          app.after(t,lambda *args:flashButton(button,"active"))
+          app.after(t+150,lambda *args:flashButton(button,"normal"))
+        # (Don't like flashing, but can't make it permanently active as it won't change when the focus does)
 
 def startTk():
     class Application(Tkinter.Frame):