diff --git modules/simpletest/tests/theme.test modules/simpletest/tests/theme.test
index 9e2f387..0c8db2d 100644
--- modules/simpletest/tests/theme.test
+++ modules/simpletest/tests/theme.test
@@ -54,6 +54,14 @@ class ThemeUnitTest extends DrupalWebTestCase {
   }
 
   /**
+  * Preprocess functions for the base hook should run even for suggestion implementations.
+  */
+  function testPreprocessForSuggestionsIncluded() {
+    $this->drupalGet('theme-test/suggestion/include');
+    $this->assertText('test_theme_indentation__suggestion_include: 1', t('Theme hook suggestion ran with data available from a preprocess function for the base hook in an include.'));
+  }
+
+  /**
    * Ensure page-front template suggestion is added when on front page.
    */
   function testFrontPageThemeSuggestion() {
diff --git modules/simpletest/tests/theme_test.inc modules/simpletest/tests/theme_test.inc
new file mode 100644
index 0000000..e3448ed
--- /dev/null
+++ modules/simpletest/tests/theme_test.inc
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * Implements hook_preprocess_identation().
+ *
+ * Set a variable that can later be tested to see if this function ran.
+ */
+function theme_test_preprocess_indentation(&$variables) {
+  $variables['theme_test_preprocess_indentation'] = 1;
+}
diff --git modules/simpletest/tests/theme_test.module modules/simpletest/tests/theme_test.module
index 63539d6..3ab1340 100644
--- modules/simpletest/tests/theme_test.module
+++ modules/simpletest/tests/theme_test.module
@@ -12,6 +12,13 @@ function theme_test_menu() {
     'theme callback' => '_theme_custom_theme',
     'type' => MENU_CALLBACK,
   );
+  $items['theme-test/suggestion/include'] = array(
+    'title' => 'Suggestion - from include',
+    'page callback' => '_theme_test_suggestion_include',
+    'access arguments' => array('access content'),
+    'theme callback' => '_theme_custom_theme',
+    'type' => MENU_CALLBACK,
+  );
   $items['theme-test/alter'] = array(
     'title' => 'Suggestion',
     'page callback' => '_theme_test_alter',
@@ -28,6 +35,22 @@ function theme_test_menu() {
 }
 
 /**
+ * Implements hook_theme().
+ */
+function theme_test_theme() {
+  // Ensure that our preprocess functions are picked up.
+  module_load_include('inc', 'theme_test');
+  return array();
+}
+
+/**
+ * Implements hook_theme_registry_alter().
+ */
+function theme_test_theme_registry_alter(&$theme_registry) {
+  $theme_registry['indentation']['includes'][] = drupal_get_path('module', 'theme_test') . '/theme_test.inc';
+}
+
+/**
  * Implements hook_init().
  */
 function theme_test_init() {
@@ -98,6 +121,13 @@ function _theme_test_suggestion() {
 }
 
 /**
+ * Page callback, calls a theme hook suggestion.
+ */
+function _theme_test_suggestion_include() {
+  return theme(array('indentation__suggestion_include', 'indentation'), array());
+}
+
+/**
  * Implements hook_preprocess_breadcrumb().
  *
  * Set a variable that can later be tested to see if this function ran.
diff --git themes/tests/test_theme/template.php themes/tests/test_theme/template.php
index 5681d5b..f9a5e28 100644
--- themes/tests/test_theme/template.php
+++ themes/tests/test_theme/template.php
@@ -11,6 +11,15 @@ function test_theme_breadcrumb__suggestion($variables) {
 }
 
 /**
+ * Tests a preprocess hook in an include for a template suggestion.
+ */
+function test_theme_indentation__suggestion_include($variables) {
+  // Tests that preprocess functions for the base theme hook get called even
+  // when the suggestion has an implementation in an include file.
+  return 'test_theme_indentation__suggestion_include: ' . $variables['theme_test_preprocess_indentation'];
+}
+
+/**
  * Tests a theme implementing an alter hook.
  *
  * The confusing function name here is due to this being an implementation of
