diff --git a/twitter.inc b/twitter.inc
index be2993c..a31dc8c 100644
--- a/twitter.inc
+++ b/twitter.inc
@@ -75,12 +75,22 @@ function twitter_account_save($twitter_user, $save_auth = FALSE) {
  *   TwitterUser object or NULL.
  */
 function twitter_account_load($id) {
-  $values = db_query('SELECT *
-                      FROM {twitter_account}
-                      WHERE twitter_uid = :id_1
-                      OR screen_name  = :id_2',
-                      array(':id_1' => $id, ':id_2' => $id))
-              ->fetchAssoc();
+  if (is_numeric($id)) {
+    // numeric id could be uid or screen name
+    $query = db_query('SELECT *
+                       FROM {twitter_account}
+                       WHERE twitter_uid = :twitter_uid
+                       OR screen_name = :screen_name',
+                       array(':twitter_uid' => $id, ':screen_name' => $id));
+  }
+  else {
+    // non-numeric id must be screen name
+    $query = db_query('SELECT *
+                       FROM {twitter_account}
+                       WHERE screen_name = :screen_name',
+                       array(':screen_name' => $id));
+  }
+  $values = $query->fetchAssoc();
   if (!empty($values)) {
     $values['id'] = $values['twitter_uid'];
     $account = new TwitterUser($values);
