Index: wp-includes/plugin.php
===================================================================
--- wp-includes/plugin.php	(revision 21215)
+++ wp-includes/plugin.php	(working copy)
@@ -163,14 +163,14 @@
 	if ( empty($args) )
 		$args = func_get_args();
 
-	do {
-		foreach( (array) current($wp_filter[$tag]) as $the_ )
+	while ( $next = each($wp_filter[$tag]) ) {
+		foreach( (array) $next['value'] as $the_ )
 			if ( !is_null($the_['function']) ){
 				$args[1] = $value;
 				$value = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args']));
 			}
 
-	} while ( next($wp_filter[$tag]) !== false );
+	}
 
 	array_pop( $wp_current_filter );
 
@@ -221,12 +221,12 @@
 
 	reset( $wp_filter[ $tag ] );
 
-	do {
-		foreach( (array) current($wp_filter[$tag]) as $the_ )
+	while ( $next = each($wp_filter[$tag]) ) {
+		foreach( (array) $next['value'] as $the_ )
 			if ( !is_null($the_['function']) )
 				$args[0] = call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args']));
 
-	} while ( next($wp_filter[$tag]) !== false );
+	} 
 
 	array_pop( $wp_current_filter );
 
@@ -397,12 +397,12 @@
 
 	reset( $wp_filter[ $tag ] );
 
-	do {
-		foreach ( (array) current($wp_filter[$tag]) as $the_ )
+	while ( $next = each($wp_filter[$tag]) ) {
+		foreach( (array) $next['value'] as $the_ )
 			if ( !is_null($the_['function']) )
 				call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args']));
 
-	} while ( next($wp_filter[$tag]) !== false );
+	}
 
 	array_pop($wp_current_filter);
 }
@@ -478,12 +478,12 @@
 
 	reset( $wp_filter[ $tag ] );
 
-	do {
-		foreach( (array) current($wp_filter[$tag]) as $the_ )
+	while ( $next = each($wp_filter[$tag]) ) {
+		foreach( (array) $next['value'] as $the_ )
 			if ( !is_null($the_['function']) )
 				call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args']));
 
-	} while ( next($wp_filter[$tag]) !== false );
+	} 
 
 	array_pop($wp_current_filter);
 }
@@ -708,12 +708,12 @@
 	global $wp_filter;
 
 	reset( $wp_filter['all'] );
-	do {
-		foreach( (array) current($wp_filter['all']) as $the_ )
+	while ( $next = each($wp_filter['all']) ) {
+		foreach( (array) $next['value'] as $the_ )
 			if ( !is_null($the_['function']) )
 				call_user_func_array($the_['function'], $args);
 
-	} while ( next($wp_filter['all']) !== false );
+	}
 }
 
 /**
