diff --git a/masquerade.install b/masquerade.install
index d062da1..3171151 100644
--- a/masquerade.install
+++ b/masquerade.install
@@ -6,40 +6,6 @@
  */
 
 /**
- * Implements hook_schema().
- */
-function masquerade_schema() {
-  $schema['masquerade'] = array(
-      'description' => 'Each masquerading user has their session recorded into the masquerade table. Each record represents a masquerading user.',
-      'fields' => array(
-        'sid' => array(
-          'description' => 'The current session for this masquerading user corresponding to their {sessions}.sid.',
-          'type' => 'varchar',
-          'length' => '64',
-          'not null' => TRUE,
-          'default' => ''),
-        'uid_from' => array(
-          'description' => 'The {users}.uid corresponding to a session.',
-          'type' => 'int',
-          'not null' => TRUE,
-          'default' => 0,
-          'disp-width' => '10'),
-        'uid_as' => array(
-          'description' => 'The {users}.uid this session is masquerading as.',
-          'type' => 'int',
-          'not null' => TRUE,
-          'default' => 0,
-          'disp-width' => '10'),
-      ),
-      'indexes' => array(
-        'sid' => array('sid', 'uid_from'),
-        'sid_2' => array('sid', 'uid_as'),
-      ),
-  );
-  return $schema;
-}
-
-/**
  * Implements hook_install().
  */
 function masquerade_install() {
diff --git a/masquerade.module b/masquerade.module
index 76fc6b3..c2570cb 100644
--- a/masquerade.module
+++ b/masquerade.module
@@ -33,44 +33,6 @@ function masquerade_permission() {
 }
 
 /**
- * Implements hook_init().
- */
-function masquerade_init() {
-  global $user;
-
-  if (isset($_SESSION['masquerading'])) {
-    return;
-  }
-  // Try to load masqing uid from masquerade table.
-  $uid = db_query("SELECT uid_from FROM {masquerade} WHERE sid = :sid AND uid_as = :uid_as", array(
-    ':sid' => session_id(),
-    ':uid_as' => $user->uid,
-  ))->fetchField();
-  if ($uid) {
-    $_SESSION['masquerading'] = $uid;
-  }
-  elseif (isset($_SESSION['masquerading'])) {
-    unset($_SESSION['masquerading']);
-  }
-}
-
-/**
- * Implements hook_cron().
- *
- * Cleanup masquerade records where people didn't use the switch back link
- * that would have cleanly removed the user switch record.
- */
-function masquerade_cron() {
-  // see http://drupal.org/node/268487 before modifying this query
-  $subquery = db_select('sessions', 's');
-  $subquery->addField('s', 'sid');
-
-  $query = db_delete('masquerade');
-  $query->condition('sid', $subquery, 'NOT IN');
-  $query->execute();
-}
-
-/**
  * Implements hook_menu().
  */
 function masquerade_menu() {
@@ -345,13 +307,7 @@ function masquerade_switch_user($uid) {
   module_invoke_all('user_logout', $user);
   drupal_session_regenerate();
 
-  $query = db_insert('masquerade');
-  $query->fields(array(
-    'uid_from' => $user->uid,
-    'uid_as' => $new_user->uid,
-    'sid' => session_id(),
-  ));
-  $query->execute();
+  $_SESSION['masquerading'] = $user->uid;
 
   watchdog('masquerade', 'User %user now masquerading as %masq_as.', array('%user' => $user->name, '%masq_as' => $new_user->name), WATCHDOG_INFO);
   drupal_set_message(t('You are now masquerading as !masq_as.', array('!masq_as' => theme('username', array('account' => $new_user)))));
@@ -397,15 +353,11 @@ function masquerade_switch_back_page() {
  */
 function masquerade_switch_back() {
   global $user;
-  $uid = db_query('SELECT uid_from FROM {masquerade} WHERE sid = :sid AND uid_as = :uid_as', array(
-    ':sid' => session_id(),
-    ':uid_as' => $user->uid,
-  ))->fetchField();
-
-  // Clean-up session masquerate.
-  db_delete('masquerade')
-    ->condition('sid', session_id())
-    ->execute();
+
+  if (!isset($_SESSION['masquerading'])) {
+    return FALSE;
+  }
+  $uid = $_SESSION['masquerading'];
 
   $oldname = $user->name;
 
