diff --git a/beautytips.module b/beautytips.module
index 682e331..614fe61 100644
--- a/beautytips.module
+++ b/beautytips.module
@@ -58,7 +58,7 @@ function beautytips_library() {
     'title' => 'BeautyTips Module',
     'website' => 'http://drupal.org/project/beautytips',
     'version' => '7.x-2.x',
-    'js' => array($path .'/js/beautytips.min.js' => array()),
+    'js' => array($path .'/js/beautytips.js' => array()), //array($path .'/js/beautytips.min.js' => array()),
     'dependencies' => array(
       array('beautytips', 'beautytips-jquery'),
     ),
diff --git a/beautytips_manager.admin.inc b/beautytips_manager.admin.inc
index 3eb9fab..608556a 100644
--- a/beautytips_manager.admin.inc
+++ b/beautytips_manager.admin.inc
@@ -225,6 +225,24 @@ function beautytips_manager_custom_tips_form($form, &$form_state, $id = NULL) {
     '#description' => $description,
   );
 
+  // Let other modules add some custom processing functions
+  $external_options = module_invoke_all('beautytips_external_options');
+  if (!empty($external_options)) {
+    $form['tip']['external_options'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Other Options'),
+      '#tree' => TRUE,
+    );
+    foreach ($external_options as $option_key => $option_settings) {
+      $form['tip']['external_options'][$option_key] = array(
+        '#type' => 'checkbox',
+        '#title' => t($option_settings['title']),
+        '#description' => t($option_settings['description']),
+        '#default_value' => is_object($tip) ? $tip->external_options[$option_key] : $option_settings['default_value'],
+      );
+    }
+  }
+
   $form['save'] = array(
     '#type' => 'submit',
     '#value' => t('Save configuration'),
diff --git a/beautytips_manager.install b/beautytips_manager.install
index 17e36e3..cfa79e7 100755
--- a/beautytips_manager.install
+++ b/beautytips_manager.install
@@ -271,3 +271,13 @@ function beautytips_manager_update_7002() {
     'not null' => TRUE,
   ));
 }
+
+/**
+ * Add the 'external_options' field to the custom tooltips table.
+ */
+function beautytips_manager_update_7003() {
+  if (!db_field_exists('beautytips_custom_tips', 'external_options')) {
+    $schema = drupal_get_schema_unprocessed('beautytips_manager', 'beautytips_custom_tips');
+    db_add_field('beautytips_custom_tips', 'external_options', $schema['fields']['external_options']);
+  }
+}
diff --git a/beautytips_manager.module b/beautytips_manager.module
index 64b078f..1b55a70 100755
--- a/beautytips_manager.module
+++ b/beautytips_manager.module
@@ -189,6 +189,10 @@ function beautytips_manager_get_custom_tips() {
   if (!$cache) {
     $results =  db_query("SELECT * FROM {beautytips_custom_tips}");
     foreach ($results as $result) {
+      if (!empty($result->external_options)) {
+        $result->external_options = unserialize($result->external_options);
+      }
+
       $tips[$result->id] = $result;
     }
     cache_set('beautytips:beautytips-ui-custom-tips', $tips);
@@ -206,7 +210,13 @@ function beautytips_manager_get_custom_tips() {
 function beautytips_manager_get_custom_tip($id) {
   $sql = "SELECT * FROM {beautytips_custom_tips} WHERE id = :id";
   $result = db_query($sql, array(':id' => $id));
-  return $result->fetchObject();
+  $object = $result->fetchObject();
+
+  if (!empty($object->external_options)) {
+    $object->external_options = unserialize($object->external_options);
+  }
+
+  return $object;
 }
 
 /**
@@ -223,6 +233,15 @@ function beautytips_manager_build_beautytip($tip) {
     'shrinkToFit' => (boolean) $tip->shrink,
     'ajaxDisableLink' => (boolean) $tip->disable_link,
   );
+
+  // Add configuration settings from other modules.
+  $external_options = module_invoke_all('beautytips_external_options');
+  foreach ($external_options as $option_name => $option_setting) {
+    if ($tip->external_options[$option_name]) {
+      $options['external_options'][$option_name] = $option_setting;
+    }
+  }
+
   if ($tip->animation_on) {
     $options['animate']['on'] = $tip->animation_on;
   }
diff --git a/js/beautytips.js b/js/beautytips.js
index 0972d9d..e3b4d6f 100644
--- a/js/beautytips.js
+++ b/js/beautytips.js
@@ -35,6 +35,18 @@
               }
             });
           }
+
+          // Allow other modules to run their own preprocess routines
+          // before we attach the beauty tips.
+          if (beautytips[key]['external_options']) {
+            for (callback in beautytips[key]['external_options']) {
+              if (beautytips[key]['external_options'][callback]['js_preprocess']) {
+                var callback_fn = beautytips[key]['external_options'][callback]['js_preprocess'];
+                $(this)[callback_fn](beautytips[key], key);
+              }
+            }
+          }
+
           // Run this if the content is straight text being passed.
           if (beautytips[key]['text']) {
             $(beautytips[key]['cssSelect']).each(function() {
