Many thanks for your brilliant universal extractor. I am most impressed. There is however 1 problem I6comp.exe cannot read InstallShield version 5 files. The autodetect only distinguishes between different Installshield compression methods, but not the archive architecture. I have checked this on the following Installshield version 5 cabinet files Photoshop v5.5 Data1.cab Photoshop v 6 Data1.cab Homesite v4.0 Data1.cab These cabs CAN all be read and extracted using I5comp.exe, which you can find on the net ftp://ftp.elf.stuba.sk/pub/pc/pack/i5comp21.rar It requires two compression DLLs: ZD50149.dll and ZD51145.dll. The earlier compression dll is never used in version 6 CABs You can distinguish version 5 archives by their signature I S c ( 49 53 63 28 01 version 6 archives start with I S c ( 49 53 63 28 0C Added: I have added the code for I5comp to Uniextract.au3 Here are the details 1. Added a variable $is5cab = "i5comp.exe" after the definition of $iscab 2. modified following code in the main program elseif $fileext = "cab" then runwait($cmd & $7z & ' l "' & $file & '"' & $output, $filedir, @SW_HIDE) if stringinstr(filereadline($debugfile, 4), "Listing archive:", 0) then extract("cab", t('CAB')) else ; this code replaces the single line extract("iscab", t('ISCAB') runwait($cmd & $ISCAB & ' l "' & $file & '"' & $output, $filedir, @SW_HIDE) if stringinstr(filereadline($debugfile, 9), "Date", 0) then extract("iscab", t('ISCAB')) else extract("is5cab",t('ISCAB')) endif endif filedelete($debugfile) 3. added the following code in the function extract after case $arctype == "iscab": case $arctype == "is5cab" $choice = ISSelect() ; Extract with i5comp by referencing individual files if $choice == "i6comp_files" then runwait($cmd & $is5cab & ' l -o -r -d "' & $file & '"' & $output, $outdir) $infile = fileopen($debugfile, 0) $line = filereadline($infile) do $isfile = stringtrimleft($line, stringinstr($line, ' ', 0, -1)) runwait($cmd & $is5cab & ' x -r -d "' & $file & '" "' & $isfile & '"', $outdir, @SW_HIDE) $line = filereadline($infile) until @error fileclose($infile) ; Extract with i5comp in default group mode elseif $choice == "i6comp_groups" then runwait($cmd & $is5cab & ' x -r -d "' & $file & '"', $outdir, @SW_HIDE) endif 4. I have alse made the group extract button the default (group extraction is much faster): In function ISSELECT(): GUICtrlSetState($is2, $GUI_CHECKED) instead of $is1, $GUI_CHECKED 5. Finally I have changed the entry in the langage file for the radiobuttons from i6comp to iscomp. I have checked that this version extracts all the I5comp and I6comp cabs I can get hold of and hope it is of use to you. I would be happy to mail you the full .au3 file if it is of any use. Oliver orlp