How about if you store the handle in a global variable and only speak if current handle is different? David Farough Application Accessibility Coordinator/coordonateur de l'accessibilité Information Technology Services Directorate / Direction des services d'information technologiques Public Service Commission / Commission de la fonction publique Email / Courriel: David.Farough@xxxxxxxxxxxxx Tel. / Tél: (613) 992-2779 >>> Jitendra <jeet.invincible@xxxxxxxxx> 10:01 am Thursday, October 08, 2009 >>> Hello friends, my say non highlighted text function below has a problem of repeating the information below, see the code and suggest please. this function re-reads the string "Hello" if we press the arrow keys, it is a slider, so changing value cause it to re-read this string or any say thing, it reads it almost 3 times, void Function SayNonHighlightedText (handle hwnd, string buffer) Var String Sclass Let SClass = GetWindowClass (Hwnd) If Sclass == "bluectr" then SayString ("Hello") ;Say (Buffer, Ot_Control_Name ) Return EndIf SayNonHighlightedText (hwnd, buffer) EndFunction Thank you, Jitendra. __________ Visit and contribute to The JAWS Script Repository http://jawsscripts.com View the list's information and change your settings at //www.freelists.org/list/jawsscripts __________� Visit and contribute to The JAWS Script Repository http://jawsscripts.com View the list's information and change your settings at //www.freelists.org/list/jawsscripts