diff --git a/contrib/search_api_page/search_api_page.admin.inc b/contrib/search_api_page/search_api_page.admin.inc
index 81dc003..e26554f 100644
--- a/contrib/search_api_page/search_api_page.admin.inc
+++ b/contrib/search_api_page/search_api_page.admin.inc
@@ -119,6 +119,7 @@ function search_api_page_admin_add(array $form, array &$form_state) {
   }
 
   $index = search_api_index_load($form_state['step_one']['index_id']);
+  $server = $index->server();
 
   if ($index->enabled) {
     $modes = array();
@@ -195,6 +196,15 @@ function search_api_page_admin_add(array $form, array &$form_state) {
     );
   }
 
+  if (module_exists('search_api_spellcheck') && $server && $server->supportsFeature('search_api_spellcheck')) {
+    $form['search_api_spellcheck'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Enable spell check'),
+      '#description' => t('Display "Did you mean... ?" above search results.'),
+      '#default_value' => TRUE,
+    );
+  }
+
   $form['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Create page'),
@@ -237,6 +247,7 @@ function search_api_page_admin_add_submit(array $form, array &$form_state) {
  */
 function search_api_page_admin_edit(array $form, array &$form_state, stdClass $page) {
   $index = search_api_index_load($page->index_id);
+  $server = $index->server();
   $form_state['page'] = $page;
 
   $form['name'] = array(
@@ -359,6 +370,15 @@ function search_api_page_admin_edit(array $form, array &$form_state, stdClass $p
     );
   }
 
+  if (module_exists('search_api_spellcheck') && $server && $server->supportsFeature('search_api_spellcheck')) {
+    $form['options']['search_api_spellcheck'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Enable spell check'),
+      '#description' => t('Display "Did you mean... ?" above search results.'),
+      '#default_value' => isset($page->options['search_api_spellcheck']) ? $page->options['search_api_spellcheck'] : FALSE,
+    );
+  }
+
   $form['actions']['#type'] = 'actions';
   $form['actions']['submit'] = array(
     '#type' => 'submit',
diff --git a/contrib/search_api_page/search_api_page.pages.inc b/contrib/search_api_page/search_api_page.pages.inc
index e84af17..ef461bd 100644
--- a/contrib/search_api_page/search_api_page.pages.inc
+++ b/contrib/search_api_page/search_api_page.pages.inc
@@ -17,9 +17,22 @@ function search_api_page_view($id, $keys = NULL) {
   $ret['form'] = drupal_get_form('search_api_page_search_form', $page, $keys);
 
   if ($keys) {
+    $results = search_api_page_search_execute($page, $keys);
+
+    // if spellcheck results are returned then add them to the render array
+    if (isset($results['search_api_spellcheck'])) {
+      $ret['search_api_spellcheck']['#theme'] = 'search_api_spellcheck';
+      $ret['search_api_spellcheck']['#spellcheck'] = $results['search_api_spellcheck'];
+      // Let the theme funcion know where the key is stored by passing it's arg
+      // number. We can work this out from the number of args in the page path.
+      $ret['search_api_spellcheck']['#options'] = array(
+        'arg' => array(count(arg(NULL, $page->path))),
+      );
+    }
+
     $ret['results']['#theme'] = 'search_api_page_results';
     $ret['results']['#index'] = search_api_index_load($page->index_id);
-    $ret['results']['#results'] = $results = search_api_page_search_execute($page, $keys);
+    $ret['results']['#results'] = $results;
     $ret['results']['#view_mode'] = isset($page->options['view_mode']) ? $page->options['view_mode'] : 'search_api_page_result';
     $ret['results']['#keys'] = $keys;
 
@@ -60,6 +73,11 @@ function search_api_page_search_execute(stdClass $page, $keys) {
     'search id' => 'search_api_page:' . $page->path,
     'parse mode' => $page->options['mode'],
   );
+
+  if (!empty($page->options['search_api_spellcheck'])) {
+    $options['search_api_spellcheck'] = $page->options['search_api_spellcheck'];
+  }
+
   $query = search_api_query($page->index_id, $options)
     ->keys($keys)
     ->range($offset, $limit);
