diff --git a/omega_tools.module b/omega_tools.module
index 0e10e85..81f3d4d 100644
--- a/omega_tools.module
+++ b/omega_tools.module
@@ -643,4 +643,45 @@ function _omega_tools_is_editable($theme) {
   }
   
   return FALSE;
-}
\ No newline at end of file
+}
+
+/**
+ * Implements hook_profiler_components().
+ */
+function omega_tools_profiler_components() {
+  return array(
+    'omega-tools' => array(
+      'callback' => 'omega_tools_profiler_callback',
+    ),
+  );
+}
+
+/**
+ * Profiler component callback.
+ */
+function omega_tools_profiler_callback($themes, $config, &$identifiers) {
+  // Tokens for use in omega tools theme arguments.
+  $tokens = array(
+    'conf_path' => conf_path(),
+    'conf_path:dir' => preg_filter('/(sites\/)(.*)/', '$2', conf_path()),
+    'conf_path:dir:prefix' => preg_filter('/(sites\/)(.*?)\..*/', '$2', conf_path()),
+  );
+
+  foreach ($themes as $machine_name => $theme) {
+    foreach ($theme as &$item) {
+      foreach ($tokens as $token => $value) {
+        $item = str_replace("[{$token}]", $value, $item);
+      }
+    }
+
+    // Build theme object with defaults if argument aren't set.
+    $theme = (object) array_merge(array(
+      'path' => "{$tokens['conf_path']}/themes/{$machine_name}",
+      'machine_name' => $machine_name,
+    ), $theme);
+
+    // Create and process subtheme.
+    omega_tools_subtheme_create($theme);
+    omega_tools_subtheme_process($theme);
+  }
+}
