Index: branches/RC/core/kernel/db/db_tag_processor.php =================================================================== diff -u -N -r10356 -r10494 --- branches/RC/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 10356) +++ branches/RC/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 10494) @@ -496,8 +496,15 @@ $block_params['not_last'] = !$block_params['is_last']; // for front-end if ($cache_mod_rw) { - $this->Application->setCache('filenames', $this->Prefix.'_'.$list->GetDBField($id_field), $list->GetDBField('Filename')); - $this->Application->setCache('filenames', 'c_'.$list->GetDBField('CategoryId'), $list->GetDBField('CategoryFilename')); + if ($this->Prefix == 'c') { + // for listing subcategories in category + $this->Application->setCache('filenames', $this->Prefix.'_'.$list->GetDBField($id_field), $list->GetDBField('NamedParentPath')); + $this->Application->setCache('category_tree', $list->GetDBField($id_field), $list->GetDBField('TreeLeft') . ';' . $list->GetDBField('TreeRight')); + } else { + // for listing items in category + $this->Application->setCache('filenames', 'c_'.$list->GetDBField('CategoryId'), $list->GetDBField('CategoryFilename')); + $this->Application->setCache('filenames', $this->Prefix.'_'.$list->GetDBField($id_field), $list->GetDBField('Filename')); + } } if ($i % $columns == 0) {