Hi Ulfhednar
Thankfully it's not just me that is having problem with UnpackFile.
In fact I have the exact same problem you have. The same UnpackFile call and also was working before 8.9 and started crashing when I use it.
My code is basically the same:
@var $source_path = GetSourcePath();
@var $arr_selected_file_paths[] = GetSourceSelectedPaths();
@var $n;
@var $ext;
for( $n=0; $n<arrayCount($arr_selected_file_paths); $n++ )
{
	$file_path = $arr_selected_file_paths[$n];
	$ext = PathGetFileExtPart($file_path, 0);
	if( StrIsEqualNoCase($ext, ".zip") )
	{
		UnpackFile($arr_selected_file_paths[$n], $source_path, "*.*", "OVERWRITEALL,USEEXISTINGQUEUE,NOWAIT", "");
	}
	else if( StrIsEqualNoCase($ext, ".7z") )
	{
		UnpackFile($arr_selected_file_paths[$n], $source_path, "*.*", "OVERWRITEALL,USEEXISTINGQUEUE,NOWAIT", "");
	}
	else if( StrIsEqualNoCase($ext, ".rar") )
	{
		UnpackFile($arr_selected_file_paths[$n], $source_path, "*.*", "OVERWRITEALL,USEEXISTINGQUEUE,NOWAIT", "");
	}
	else if( StrIsEqualNoCase($ext, ".lha") )
	{
		UnpackFile($arr_selected_file_paths[$n], $source_path, "*.*", "OVERWRITEALL,USEEXISTINGQUEUE,NOWAIT", "");
	}
	else if( StrIsEqualNoCase($ext, ".arj") )
	{
		UnpackFile($arr_selected_file_paths[$n], $source_path, "*.*", "OVERWRITEALL,USEEXISTINGQUEUE,NOWAIT", "");
	}
	else if( StrIsEqualNoCase($ext, ".cab") )
	{
		UnpackFile($arr_selected_file_paths[$n], $source_path, "*.*", "OVERWRITEALL,USEEXISTINGQUEUE,NOWAIT", "");
	}
	else if( StrIsEqualNoCase($ext, ".tar") )
	{
		UnpackFile($arr_selected_file_paths[$n], $source_path, "*.*", "OVERWRITEALL,USEEXISTINGQUEUE,NOWAIT", "");
	}
	else if( StrIsEqualNoCase($ext, ".gz") )
	{
		UnpackFile($arr_selected_file_paths[$n], $source_path, "*.*", "OVERWRITEALL,USEEXISTINGQUEUE,NOWAIT", "");
	}
	else if( StrIsEqualNoCase($ext, ".gzip") )
	{
		UnpackFile($arr_selected_file_paths[$n], $source_path, "*.*", "OVERWRITEALL,USEEXISTINGQUEUE,NOWAIT", "");
	}
	else if( StrIsEqualNoCase($ext, ".bz") )
	{
		UnpackFile($arr_selected_file_paths[$n], $source_path, "*.*", "OVERWRITEALL,USEEXISTINGQUEUE,NOWAIT", "");
	}
	else if( StrIsEqualNoCase($ext, ".bzip2") )
	{
		UnpackFile($arr_selected_file_paths[$n], $source_path, "*.*", "OVERWRITEALL,USEEXISTINGQUEUE,NOWAIT", "");
	}
	else if( StrIsEqualNoCase($ext, ".tbz") )
	{
		UnpackFile($arr_selected_file_paths[$n], $source_path, "*.*", "OVERWRITEALL,USEEXISTINGQUEUE,NOWAIT", "");
	}
	else if( StrIsEqualNoCase($ext, ".tbz2") )
	{
		UnpackFile($arr_selected_file_paths[$n], $source_path, "*.*", "OVERWRITEALL,USEEXISTINGQUEUE,NOWAIT", "");
	}
}