Index: includes/admin.menu.css
--- includes/admin.menu.css Base (BASE)
+++ includes/admin.menu.css Locally Modified (Based On LOCAL)
@@ -125,3 +125,16 @@

 .drilldown ul.drilldown-active-menu li.expanded { cursor:pointer; }
 .drilldown ul.drilldown-active-menu ul.menu li a { display:none !important; }
+
+/* Theme switcher with previews */
+#admin-toolbar #admin-block-theme-form #edit-theme-default label {
+  position: relative;
+}
+#admin-toolbar #admin-block-theme-form #edit-theme-default label:hover .screenshot {
+  display: block;
+  position: fixed;
+  bottom: 0;
+  left: 70px;
+  background-color: #ffffff;
+  z-index: 9;
+}
\ No newline at end of file
Index: includes/admin.theme.inc
--- includes/admin.theme.inc Base (BASE)
+++ includes/admin.theme.inc Locally Modified (Based On LOCAL)
@@ -21,8 +21,11 @@
   foreach ($themes as $theme) {
     if ($theme->status) {
       $options[$theme->name] = isset($theme->info['name']) ? check_plain($theme->info['name']) : $theme->name;
+      if (file_exists($theme->info['screenshot'])) {
+        $options[$theme->name] .= '<div class="screenshot element-hidden"><img src="' . url($theme->info['screenshot']) . '"></div>';
     }
   }
+  }
   $form = array();
   $form['theme_default'] = array(
     '#type' => 'radios',
