This is a JAWS script that should work on pretty much any version, and is made for Outlook Express 5 or 6. Someone once said to me, "A good programmer suffers from an inherent lazy streak"... Which I took to mean that they dislike performing the same action over and over again, when it would be much easier for the computer to simply do it for them! This may sound petty, but I really dislike having to hit Tab and shift+tab every time I want to browse the messages in my inbox. Wouldn't it be much better to simply hit a keystroke after highlighting the message you want to scan using the up/down keys, and have the window speak it's message crisply and immediately without moving the cursor? Well, I thought so, so I wrote this script to do it. It's very simple to install, Just do the following Copy all of the code at the bottom of this message to the clipboard If you are running Outlook Express, press Insert+0 to open the script manager Go to the end of the file, press enter a few times, and paste the code into the file Navigate towards the middle of the script using the up/down arrow keys, and press Control+D If "Can Be Attached To Key" is not checked, check it enter whatever hotkey you would like to use to scan your messages. (I use the ` (grave-accent) key myself) Press OK Press Control+S to compile the script, and close the file That should do it. Important note: This script isn't meant to read the entire message, only the visible text in the message window. Maximize Outlook Express to optimize the functionality. I hope people find this useful. Best wishes, Bryan Garaventa http://gutterstar.net/ ;Beginning of script code Script ScanSelectedMessage () ;Variables to hold the message text and window handle var string mWin, handle mHwnd ;If statement to verify the correct window if GetWindowSubtypeCode (GetFocus ()) == wt_listview && GetWindowClass (GetParent (GetFocus ())) == "Outlook Express Message List" then ;Assign window handle let mHwnd = GetFirstChild (GetFirstChild (GetNextWindow (GetParent (GetFocus ())))) ;Assign window text let mWin = GetWindowText (mHwnd, false) ;Speak window text Say (mWin, 0) ;End process Return endif ;Continuation if conditions aren't met above SayCurrentScriptKeyLabel () TypeCurrentScriptKey () EndScript ;End of Script code -- To post a message to the list, send it to jfw@xxxxxxxxxxxxx To unsubscribe from this mailing list, send a message to jfw-request@xxxxxxxxxxxxx with the word unsubscribe in the subject line. Archives located at: //www.freelists.org/archives/jfw If you have any concerns about the list, post received from the list, or the way the list is being run, do not post them to the list. Rather contact the list owner at jfw-admins@xxxxxxxxxxxxxx