yeah guys your right. i did come across a minor problem with the file names, it wasn't being too acurate. cheers for the help, works better now. Should i do the same for the SP1 search:

;Read IE patches installed
$check=ReadValue("HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings","MinorVersion")
;split string to substrings
$array=Split($check,';')
for each $element in $array
$element ?
next
;if patch exists then do nothing
if instr(";"+$check+";",";Q811383;")
GOTO "end"
else
;install patch if SP1 is installed - REQUIRED
if instr($check,"SP1")
RUN "@LDRIVE\q811383 /Q"
ENDIF
ENDIF
:end

I also need something to check the file version of a DLL file. I tried GetFileVersion but then read that it only works with EXE files. Is there anything that can get the BinFileVersion of a DLL? (or should i start a new thread for that?)