When copying or linking a product in admin the 'Current Categories' in the right sidebar is incorrectly displayed.

If the product is only in one category, the category and subcategory are reversed and 'Current Categories' is displayed as:
Subcat > Category

If the product already exists in two categories, then it's particularly confusing, as it's displayed as:
Subcat2 > Category2 > Subcat1 > Category1

instead of:
Category1 > Subcat1
Category2 > Subcat2

The problem lies in function zen_output_generated_category_path in admin/includes/functions/functions/general.php around line 1167:
Code:
    for ($i=0, $n=sizeof($calculated_category_path); $i<$n; $i++) {
      for ($j=0, $k=sizeof($calculated_category_path[$i]); $j<$k; $j++) {
//        $calculated_category_path_string .= $calculated_category_path[$i][$j]['text'] . '&nbsp;&gt;&nbsp;';
        $calculated_category_path_string = $calculated_category_path[$i][$j]['text'] . '&nbsp;&gt;&nbsp;' . $calculated_category_path_string;
      }
      $calculated_category_path_string = substr($calculated_category_path_string, 0, -16) . '<br>';
    }
    $calculated_category_path_string = substr($calculated_category_path_string, 0, -4);
Reinstating the line that was commented out, and removing the following line, would fix the issue - but would then result in the heading at the top of the page being incorrect, i.e. Categories / Products - Subcat > Category.
This is because zen_generate_category_path (same file, line 1122) reverses the array of categories when called for a product, but not for a category. Which is probably why that commented out line was changed in the first place.

Solution:
Reinstate the commented out line, but only if the item being processed is not a category.
Replace the above code with:
Code:
    for ($i=0, $n=sizeof($calculated_category_path); $i<$n; $i++) {
      for ($j=0, $k=sizeof($calculated_category_path[$i]); $j<$k; $j++) {
	if ($from == 'category')
	  $calculated_category_path_string = $calculated_category_path[$i][$j]['text'] . '&nbsp;&gt;&nbsp;' . $calculated_category_path_string;
	else
	  $calculated_category_path_string .= $calculated_category_path[$i][$j]['text'] . '&nbsp;&gt;&nbsp;';
    }
      $calculated_category_path_string = substr($calculated_category_path_string, 0, -16) . '<br>';
    }
    $calculated_category_path_string = substr($calculated_category_path_string, 0, -4);