Index: category-template.php
===================================================================
--- category-template.php	(revision 12320)
+++ category-template.php	(working copy)
@@ -722,7 +722,7 @@
 	if ( empty($args[2]['walker']) || !is_a($args[2]['walker'], 'Walker') )
 		$walker = new Walker_Category;
 	else
-		$walker = $args[2]['walker'];
+		$walker = new $args[2]['walker'];
 
 	return call_user_func_array(array( &$walker, 'walk' ), $args );
 }
@@ -740,7 +740,7 @@
 	if ( empty($args[2]['walker']) || !is_a($args[2]['walker'], 'Walker') )
 		$walker = new Walker_CategoryDropdown;
 	else
-		$walker = $args[2]['walker'];
+		$walker = new $args[2]['walker'];
 
 	return call_user_func_array(array( &$walker, 'walk' ), $args );
 }
Index: comment-template.php
===================================================================
--- comment-template.php	(revision 12320)
+++ comment-template.php	(working copy)
@@ -1389,6 +1389,8 @@
 
 	if ( empty($walker) )
 		$walker = new Walker_Comment;
+	else
+		$walker = new $walker;
 
 	$walker->paged_walk($_comments, $max_depth, $page, $per_page, $r);
 	$wp_query->max_num_comment_pages = $walker->max_pages;
Index: post-template.php
===================================================================
--- post-template.php	(revision 12320)
+++ post-template.php	(working copy)
@@ -859,7 +859,7 @@
 	if ( empty($r['walker']) )
 		$walker = new Walker_Page;
 	else
-		$walker = $r['walker'];
+		$walker = new $r['walker'];
 
 	$args = array($pages, $depth, $r, $current_page);
 	return call_user_func_array(array(&$walker, 'walk'), $args);
@@ -877,7 +877,7 @@
 	if ( empty($args[2]['walker']) ) // the user's options are the third parameter
 		$walker = new Walker_PageDropdown;
 	else
-		$walker = $args[2]['walker'];
+		$walker = new $args[2]['walker'];
 
 	return call_user_func_array(array(&$walker, 'walk'), $args);
 }
