diff --git a/apps.module b/apps.module
index 056a82a..5cd9c8d 100755
--- a/apps.module
+++ b/apps.module
@@ -160,3 +160,73 @@ function apps_updater_info() {
   );
 }
 
+/**
+ * Implements hook_modules_enabled()
+ * Check if a module has listed a default theme in its .info file and enable it
+ */
+function apps_modules_enabled($modules) {
+  foreach ($modules as $module) {
+    $info = drupal_parse_info_file(drupal_get_path('module', $module) . '/' . $module . '.info');
+    $theme = $info['apps']['theme_default'];
+    if (!empty($theme)) {
+      apps_theme_enable($theme);
+    }
+  }
+}
+
+/**
+ * Implements hook_modules_disabled()
+ * Check if a module has listed a default theme in its .info file and disable it
+ */
+function apps_modules_disabled($modules) {
+  foreach ($modules as $module) {
+    $info = drupal_parse_info_file(drupal_get_path('module', $module) . '/' . $module . '.info');
+    $theme = $info['apps']['theme_default'];
+    if (!empty($theme)) {
+      apps_theme_disable($theme);
+    }
+  }
+}
+
+/**
+ * Enable a theme
+ */
+function apps_theme_enable($theme) {
+  system_rebuild_theme_data();
+  theme_enable(array($theme));
+  variable_set('theme_default', $theme);
+}
+
+/**
+ * Disable a theme, and enable Bartik in its place
+ */
+function apps_theme_disable($theme) {
+  system_rebuild_theme_data();
+  theme_disable(array($theme));
+  theme_enable(array('bartik'));
+  variable_set('theme_default', 'bartik');
+}
+
+/**
+ * Implements hook_system_theme_info()
+ * Get a list of all enabled apps, check if they have a default theme listed, and list it on the appearance page
+ */
+function apps_system_theme_info() {
+  $servers = func_get_args();
+  module_load_include('inc', 'apps', 'apps.manifest');
+  $servers = !empty($servers)? $servers : array_keys(apps_servers());
+  foreach($servers as $server) {
+    $apps = apps_apps($server);
+    foreach ($apps as $k => $app) {
+      $machine_name = $app['machine_name'];
+      if($app['status'] == 1) {
+        $info = drupal_parse_info_file(drupal_get_path('module', $machine_name) . '/' . $machine_name . '.info');
+        $theme = $info['apps']['theme_default'];
+        if(isset($theme)) {
+          $themes[$theme] = drupal_get_path('module', $machine_name) . '/' . $theme . '/' . $theme . '.info';
+        }
+      }
+    }
+  }
+  return $themes;
+}
