diff --git a/session_api.module b/session_api.module
index 5d763a6..52fd73b 100644
--- a/session_api.module
+++ b/session_api.module
@@ -49,14 +49,13 @@ function session_api_get_sid($create = TRUE) {
     // First, check if we already have an active session.
     if (isset($_COOKIE['session_api_session']) && $_COOKIE['session_api_session']) {
       $session_id = $_COOKIE['session_api_session'];
-      $sid = db_query("SELECT sid FROM {session_api} WHERE session_id = :session_id", array(':session_id' => $session_id))->fetchField();
     }
     // If the caller doesn't want to create a new session if it didn't exist, 
     // then return here.
     else if (!$create) {
       // Return a negative value here, since it won't collide with any
       // session_api IDs.
-    	return -1;
+       return -1;
     }
     else {
       $session_id = drupal_hash_base64(uniqid(mt_rand(), TRUE));
@@ -65,25 +64,19 @@ function session_api_get_sid($create = TRUE) {
     // For the cookie we use the same domain that Drupal's own session cookie uses.
     $cookie_domain = ini_get('session.cookie_domain');
     // Update the session timeout.
-    if ($sid) {
-      $rec = new stdClass;
-      $rec->sid = $sid;
-      $rec->timestamp = REQUEST_TIME;
-      $rec->session_id = $session_id;
-      drupal_write_record('session_api', $rec, 'sid');
-      setcookie('session_api_session', $session_id, REQUEST_TIME + variable_get('session_api_cookie_expire_time', 2592000), '/', $cookie_domain);
-    }
-    // No sid exists, create new one.
-    else {
-      $rec = new stdClass();
-      $rec->timestamp = REQUEST_TIME;
-      $rec->session_id = $session_id;
-      drupal_write_record('session_api', $rec);
-      $sid = $rec->sid;
+    db_merge('session_api')
+     ->key(array(
+       'session_id' => $session_id,
+       ))
+     ->fields(array(
+     'timestamp' => REQUEST_TIME,
+     ))
+     ->execute();
+ 
+    $sid = db_query("SELECT sid FROM {session_api} WHERE session_id = :session_id", array(':session_id' => $session_id))->fetchField();
 
-      // Set cookie.
-      setcookie('session_api_session', $session_id, REQUEST_TIME + variable_get('session_api_cookie_expire_time', 2592000), '/', $cookie_domain);
-    }
+    // Set cookie.
+    setcookie('session_api_session', $session_id, REQUEST_TIME + variable_get('session_api_cookie_expire_time', 2592000), '/', $cookie_domain);
   }
   return $sid;
 }
