never mind - i downloaded the code.
the plugin is definitively broken - missing closing ul and double post list.
it is caused by not resetting a variable within the code.
changing the code from about line 604 of page2cat.php to the code below might work for your purpose:
// filter the content of a page, check for tag and replace it with a list of posts in the requested category.
// function heavily inspired from Alex Rabe NextGen Gallery's nggfunctions.php.
function page2cat_content_catlist($content){
global $post;
if ( stristr( $content, '[catlist' )) {
$search = "@(?:<p>)*\s*\[catlist\s*=\s*(\w+|^\+)\]\s*(?:</p>)*@i";
if (preg_match_all($search, $content, $matches)) {
if (is_array($matches)) {
$title = get_option('p2c_catlist_title');
if($title != "") $output = "<h4>".$title."</h4>"; else $output = "";
$limit = get_option('p2c_catlist_limit');
foreach ($matches[1] as $key =>$v0) {
$output .= "<ul class='p2c_catlist'>";
$catposts = get_posts('cat='.$v0.'&numberposts='.$limit);
foreach($catposts as $single):
$output .= "<li><a href='".get_permalink($single->ID)."'>".$single->post_title."</a></li>";
endforeach;
$search = $matches[0][$key];
$replace= $output.'</ul>';
$output='';
$content= str_replace ($search, $replace, $content);
}
}
}
}
return $content;
}
worked in my local test setup with two different categories.
no more need to add the </ul> yourself.