Index: /Users/denis/Sites/sem-pro/wp-includes/user.php
===================================================================
--- /Users/denis/Sites/sem-pro/wp-includes/user.php	(revision 1218)
+++ /Users/denis/Sites/sem-pro/wp-includes/user.php	(working copy)
@@ -597,6 +597,7 @@
 	wp_cache_add($user->ID, $user, 'users');
 	wp_cache_add($user->user_login, $user->ID, 'userlogins');
 	wp_cache_add($user->user_email, $user->ID, 'useremail');
+	wp_cache_add($user->user_nicename, $user->ID, 'usernicename');
 }
 
 ?>
Index: /Users/denis/Sites/sem-pro/wp-includes/query.php
===================================================================
--- /Users/denis/Sites/sem-pro/wp-includes/query.php	(revision 1218)
+++ /Users/denis/Sites/sem-pro/wp-includes/query.php	(working copy)
@@ -2002,7 +2002,8 @@
 				}
 			}
 			$q['author_name'] = sanitize_title($q['author_name']);
-			$q['author'] = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_nicename='".$q['author_name']."'");
+			$q['author'] = get_user_by_nicename($q['author_name']);
+			$q['author'] = $q['author']->ID;
 			$whichauthor .= " AND ($wpdb->posts.post_author = ".absint($q['author']).')';
 		}
 
Index: /Users/denis/Sites/sem-pro/wp-includes/pluggable.php
===================================================================
--- /Users/denis/Sites/sem-pro/wp-includes/pluggable.php	(revision 1218)
+++ /Users/denis/Sites/sem-pro/wp-includes/pluggable.php	(working copy)
@@ -203,6 +203,36 @@
 }
 endif;
 
+if ( !function_exists('get_user_by_nicename') ) :
+/**
+ * Retrieve user info by user nicename.
+ *
+ * @since 2.8
+ *
+ * @param string $nicename User's nice nicename
+ * @return bool|object False on failure, User DB row object
+ */
+function get_user_by_nicename($nicename) {
+	global $wpdb;
+
+	$user_id = wp_cache_get($nicename, 'usernicename');
+
+	$user = false;
+	if ( false !== $user_id )
+		$user = wp_cache_get($user_id, 'users');
+
+	if ( false !== $user )
+		return $user;
+
+	if ( !$user = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->users WHERE user_nicename = %s", $nicename)) )
+		return false;
+
+	_fill_user($user);
+
+	return $user;
+}
+endif;
+
 if ( !function_exists( 'wp_mail' ) ) :
 /**
  * Send mail, similar to PHP's mail
Index: /Users/denis/Sites/sem-pro/wp-admin/includes/user.php
===================================================================
--- /Users/denis/Sites/sem-pro/wp-admin/includes/user.php	(revision 1218)
+++ /Users/denis/Sites/sem-pro/wp-admin/includes/user.php	(working copy)
@@ -441,6 +441,7 @@
 	wp_cache_delete($id, 'users');
 	wp_cache_delete($user->user_login, 'userlogins');
 	wp_cache_delete($user->user_email, 'useremail');
+	wp_cache_delete($user->user_nicename, 'usernicename');
 	
 	// allow for commit transaction
 	do_action('deleted_user', $id);
