diff --git a/includes/views/handlers/statuses_plugin_argument_validate.inc b/includes/views/handlers/statuses_plugin_argument_validate.inc
index 12802a4..30a832e 100644
--- a/includes/views/handlers/statuses_plugin_argument_validate.inc
+++ b/includes/views/handlers/statuses_plugin_argument_validate.inc
@@ -11,6 +11,10 @@
 class statuses_plugin_argument_validate extends views_plugin_argument_validate {
   var $option_name = 'validate_argument_status';
   function validate_argument($argument) {
-    return (bool) db_query("SELECT 1 FROM {statuses} WHERE sid = :sid", array(':sid' => $argument))->fetchField();
+    return (bool) db_select('statuses')
+    ->fields('statuses', array('sid'))
+    ->condition('sid', $argument)
+    ->execute()
+    ->fetchField();
   }
 }
diff --git a/includes/views/handlers/statuses_views_handler_argument_communicated.inc b/includes/views/handlers/statuses_views_handler_argument_communicated.inc
index 8ad1d3a..6a71d77 100644
--- a/includes/views/handlers/statuses_views_handler_argument_communicated.inc
+++ b/includes/views/handlers/statuses_views_handler_argument_communicated.inc
@@ -11,10 +11,15 @@
 class statuses_views_handler_argument_communicated extends views_handler_argument {
   function query() {
     $this->ensure_my_table();
-    $this->query->add_where(0, db_prefix_tables("
-        ({users}.uid IN (SELECT sender FROM {statuses} WHERE type = 'user' AND recipient = %d) OR
-        {users}.uid IN (SELECT recipient FROM {statuses} WHERE type = 'user' AND sender = %d))
-        AND {users}.uid <> %d
-    "), $this->argument, $this->argument, $this->argument);
+    $recipient_sub_query = db_select('statuses')
+      ->fields('statuses', array('recipient'))
+      ->condition(db_and()->condition('type', 'user')->condition('recipient', $this->argument));
+    $sender_sub_query = db_select('statuses')
+      ->fields('statuses', array('sender'))
+      ->condition(db_and()->condition('type', 'user')->condition('sender', $this->argument));
+    $this->query->add_where(0, db_and()
+      ->condition(db_or()->condition('users.uid', $recipient_sub_query, 'IN')->condition('users.uid', $sender_sub_query, 'IN'))
+      ->condition('users.uid', $this->argument)
+	);
   }
 }
diff --git a/includes/views/handlers/statuses_views_handler_argument_participant.inc b/includes/views/handlers/statuses_views_handler_argument_participant.inc
index 1e3b1ce..aa05a00 100644
--- a/includes/views/handlers/statuses_views_handler_argument_participant.inc
+++ b/includes/views/handlers/statuses_views_handler_argument_participant.inc
@@ -11,6 +11,12 @@
 class statuses_views_handler_argument_participant extends views_handler_argument {
   function query() {
     $argument = $this->argument;
-    $this->query->add_where(0, "($this->table.sender = %d OR $this->table.recipient = %d) AND $this->table.type = 'user'", $argument, $argument);
+    $this->query->add_where(0, db_or()
+        ->condition("$this->table.sender", $argument)
+        ->condition(db_and()
+          ->condition("$this->table.recipient", $argument)
+          ->condition("$this->table.type", 'user')
+        )
+    );
   }
 }
diff --git a/includes/views/handlers/statuses_views_handler_argument_rels_and_me.inc b/includes/views/handlers/statuses_views_handler_argument_rels_and_me.inc
index 3abf52a..4a2f174 100644
--- a/includes/views/handlers/statuses_views_handler_argument_rels_and_me.inc
+++ b/includes/views/handlers/statuses_views_handler_argument_rels_and_me.inc
@@ -14,8 +14,12 @@ class statuses_views_handler_argument_rels_and_me extends views_handler_argument
     $alias = $this->query->ensure_table('users');
     $argument = $this->argument;
     // Argument user is in an approved relationship
-    $this->query->add_where(isset($this->options['group']) ? $this->options['group'] : 0, db_prefix_tables("
+    /*$this->query->add_where(isset($this->options['group']) ? $this->options['group'] : 0, db_prefix_tables("
       (($this->table_alias.requestee_id = %d OR $this->table_alias.requester_id = %d) AND $this->table_alias.approved = 1) OR $alias.uid = %d
-    "), $argument, $argument, $argument);
+    "), $argument, $argument, $argument);*/
+    $this->query->add_where(isset($this->options['group']) ? $this->options['group'] : 0, db_or()
+      ->condition(db_and()->condition(db_or()->condition("$this->table_alias.requestee_id", $argument)->condition("$this->table_alias.requester_id", $argument))->condition("$this->table_alias.approved", 1))
+      ->condition("$alias.uid", $argument)
+    );
   }
 }
diff --git a/includes/views/handlers/statuses_views_handler_field_last.inc b/includes/views/handlers/statuses_views_handler_field_last.inc
index 0309671..18be348 100644
--- a/includes/views/handlers/statuses_views_handler_field_last.inc
+++ b/includes/views/handlers/statuses_views_handler_field_last.inc
@@ -12,17 +12,17 @@ class statuses_views_handler_field_last extends views_handler_field {
   function render($values) {
     global $user;
     $uid = $values->{$this->field_alias};
-    $message = db_query_range("
-      SELECT message
-      FROM {statuses}
-      WHERE
-        type = 'user' AND
-        message <> '' AND (
-          (sender = :sender AND recipient = :recipient) OR
-          (sender = :recipient AND recipient = :sender)
-        )
-      ORDER BY sid DESC
-    ", 0, 1, array(':sender' => $user->uid, ':recipient' => $uid))->fetchField();
+    $message = db_select('statuses')
+      ->fields('statuses', array('message'))
+      ->condition('type', 'user')
+      ->condition('message', '', '<>')
+      ->condition(db_or()
+        ->condition(db_and()->condition('sender', $user->uid)->condition('recipient', $uid))
+        ->condition(db_and()->condition('sender', $uid)->condition('recipient', $user->uid))
+	  )
+      ->orderBy('sid', 'DESC')
+      ->execute()
+      ->fetchField();
     $message = _statuses_run_filter($message);
     if (variable_get('statuses_nl2br', 0)) {
       $message = nl2br($message);
diff --git a/includes/views/handlers/statuses_views_handler_field_recipient.inc b/includes/views/handlers/statuses_views_handler_field_recipient.inc
index 0a9390b..1fca3f1 100644
--- a/includes/views/handlers/statuses_views_handler_field_recipient.inc
+++ b/includes/views/handlers/statuses_views_handler_field_recipient.inc
@@ -8,7 +8,7 @@
 /**
  * Allows linking to the recipient of the status.
  */
-class statuses_views_handler_field_recipient extends views_handler_field_user {
+class statuses_views_handler_field_recipient extends views_handler_field {
   function option_definition() {
     $options = parent::option_definition();
     $options['link_to'] = array(
@@ -32,6 +32,7 @@ class statuses_views_handler_field_recipient extends views_handler_field_user {
   function render($values) {
     $type = $values->{$this->aliases['type']};
     $context = statuses_determine_context($type);
+    $recipient_id = $values->statuses_recipient;
     $recipient = $context['handler']->load_recipient($recipient_id);
     if (!empty($this->options['link_to'])) {
       return '<span class="statuses-recipient">' . $context['handler']->recipient_link($recipient) . '</span>';
diff --git a/includes/views/handlers/statuses_views_handler_filter_communicated.inc b/includes/views/handlers/statuses_views_handler_filter_communicated.inc
index 2d4f2ef..b1f120a 100644
--- a/includes/views/handlers/statuses_views_handler_filter_communicated.inc
+++ b/includes/views/handlers/statuses_views_handler_filter_communicated.inc
@@ -12,10 +12,15 @@ class statuses_views_handler_filter_communicated extends views_handler_filter {
   function query() {
     global $user;
     $this->ensure_my_table();
-    $this->query->add_where(0, db_prefix_tables("
-        ({users}.uid IN (SELECT sender FROM {statuses} WHERE type = 'user' AND recipient = %d) OR
-        {users}.uid IN (SELECT recipient FROM {statuses} WHERE type = 'user' AND sender = %d))
-        AND {users}.uid <> %d
-    "), $user->uid, $user->uid, $user->uid);
+    $recipient_sub_query = db_select('statuses')
+      ->fields('statuses', array('recipient'))
+      ->condition(db_and()->condition('type', 'user')->condition('recipient', $user->uid));
+    $sender_sub_query = db_select('statuses')
+      ->fields('statuses', array('sender'))
+      ->condition(db_and()->condition('type', 'user')->condition('sender', $user->uid));
+    $this->query->add_where(0, db_and()
+      ->condition(db_or()->condition('users.uid', $recipient_sub_query, 'IN')->condition('users.uid', $sender_sub_query, 'IN'))
+      ->condition('users.uid', $user->uid)
+	);
   }
 }
diff --git a/includes/views/handlers/statuses_views_handler_filter_not_own.inc b/includes/views/handlers/statuses_views_handler_filter_not_own.inc
index e54ec81..4f09218 100644
--- a/includes/views/handlers/statuses_views_handler_filter_not_own.inc
+++ b/includes/views/handlers/statuses_views_handler_filter_not_own.inc
@@ -19,7 +19,10 @@ class statuses_views_handler_filter_not_own extends views_handler_filter_boolean
   function query() {
     if ($this->value) {
       $this->ensure_my_table();
-      $this->query->add_where(0, db_prefix_tables("($this->table_alias.type <> 'user' OR $this->table_alias.sender <> $this->table_alias.recipient)"));
+      $this->query->add_where(0, db_or()
+        ->condition("$this->table_alias.type", 'user', '<>')
+        ->where("$this->table_alias.sender <> $this->table_alias.recipient")
+      );
     }
   }
 }
diff --git a/includes/views/handlers/statuses_views_handler_filter_own.inc b/includes/views/handlers/statuses_views_handler_filter_own.inc
index d55dd84..f150f64 100644
--- a/includes/views/handlers/statuses_views_handler_filter_own.inc
+++ b/includes/views/handlers/statuses_views_handler_filter_own.inc
@@ -19,7 +19,10 @@ class statuses_views_handler_filter_own extends views_handler_filter_boolean_ope
   function query() {
     if ($this->value) {
       $this->ensure_my_table();
-      $this->query->add_where(0, db_prefix_tables("($this->table_alias.type = 'user' AND $this->table_alias.sender = $this->table_alias.recipient)"));
+      $this->query->add_where(0, db_and()
+        ->condition("$this->table_alias.type", 'user', '=')
+        ->where("$this->table_alias.sender = $this->table_alias.recipient")
+      );
     }
   }
 }
diff --git a/includes/views/handlers/statuses_views_handler_filter_participant.inc b/includes/views/handlers/statuses_views_handler_filter_participant.inc
index c7f32ef..9b7235f 100644
--- a/includes/views/handlers/statuses_views_handler_filter_participant.inc
+++ b/includes/views/handlers/statuses_views_handler_filter_participant.inc
@@ -25,9 +25,12 @@ class statuses_views_handler_filter_participant extends views_handler_filter {
   function query() {
     $this->query->add_where(
       $this->options['group'],
-      "$this->table.sender = %d OR ($this->table.recipient = %d AND $this->table.type = 'user')",
-      $this->value,
-      $this->value
+      db_or()
+        ->condition("$this->table.sender", $this->value)
+        ->condition(db_and()
+          ->condition("$this->table.recipient", $this->value)
+          ->condition("$this->table.type", 'user')
+        )
     );
   }
 }
diff --git a/statuses.info b/statuses.info
index b61d0fb..1cd3c66 100644
--- a/statuses.info
+++ b/statuses.info
@@ -26,6 +26,7 @@ files[] = includes/views/handlers/statuses_plugin_argument_validate.inc
 files[] = includes/views/handlers/statuses_views_handler_argument_communicated.inc
 files[] = includes/views/handlers/statuses_views_handler_argument_participant.inc
 files[] = includes/views/handlers/statuses_views_handler_argument_rels_and_me.inc
+files[] = includes/views/handlers/statuses_views_handler_field_classes.inc
 files[] = includes/views/handlers/statuses_views_handler_field_created.inc
 files[] = includes/views/handlers/statuses_views_handler_field_cross.inc
 files[] = includes/views/handlers/statuses_views_handler_field_cross_pic.inc
@@ -38,6 +39,7 @@ files[] = includes/views/handlers/statuses_views_handler_field_recipient.inc
 files[] = includes/views/handlers/statuses_views_handler_field_recipient_pic.inc
 files[] = includes/views/handlers/statuses_views_handler_field_repost.inc
 files[] = includes/views/handlers/statuses_views_handler_field_respond.inc
+files[] = includes/views/handlers/statuses_views_handler_field_sender_pic.inc
 files[] = includes/views/handlers/statuses_views_handler_filter_autotype.inc
 files[] = includes/views/handlers/statuses_views_handler_filter_communicated.inc
 files[] = includes/views/handlers/statuses_views_handler_filter_latest_only.inc
