diff --git README.txt README.txt
index 4fdee3b..bb7fd2d 100644
--- README.txt
+++ README.txt
@@ -62,6 +62,7 @@ this:
         'callback' => 'example_somefunction',
         'includes' => array('theme', 'unicode'),
         'dependencies' => array('locale', 'filter', 'user'),
+        'file' => 'includes/example.inc'
       ),
     );
   }
diff --git js.php js.php
index 5ad8d0a..d097379 100644
--- js.php
+++ js.php
@@ -62,11 +62,21 @@ function js_execute_callback() {
   $valid_callbacks = $function();
 
   $callback = check_plain(implode('/', $args));
-  if (!isset($valid_callbacks[$callback]) || !function_exists($valid_callbacks[$callback]['callback'])) {
+  if (!isset($valid_callbacks[$callback])) {
     return JS_NOT_FOUND;
   }
 
   $info = $valid_callbacks[$callback];
+
+  // If the callback function is located in another file, load that file now.
+  if (isset($info['file']) && ($filepath = drupal_get_path('module', $module).'/'.$info['file']) && file_exists($filepath)) {
+    require_once $filepath;
+  }
+
+  if (!function_exists($info['callback'])) {
+    return JS_NOT_FOUND;
+  }
+
   $full_boostrap = FALSE;
 
   // Bootstrap to required level.
