diff --git a/apps.module b/apps.module
index 056a82a..00eb756 100755
--- a/apps.module
+++ b/apps.module
@@ -160,3 +160,49 @@ 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');
+}
