Index: switchtheme.module
===================================================================
--- switchtheme.module	(revision 6)
+++ switchtheme.module	(working copy)
@@ -81,7 +81,9 @@
   // object for authenticated users; that value is automatically used across
   // sessions by Drupal core if the "select different theme" permission has
   // been granted.
-  if (isset($_SESSION['custom_theme']) && (!isset($custom_theme) || $custom_theme === '0')) {
+  if (user_access('select different theme')) {
+    # Do nothing, this reflects the logic in switchtheme_switch_form_submit called just above 
+  } elseif (isset($_SESSION['custom_theme']) && (!isset($custom_theme) || $custom_theme === '0')) {
     $custom_theme = $_SESSION['custom_theme'];
   }
 