diff --git a/search_api_page.pages.inc b/search_api_page.pages.inc
index 29c91eb..6180896 100644
--- a/search_api_page.pages.inc
+++ b/search_api_page.pages.inc
@@ -41,8 +41,17 @@ function search_api_page_view($id, $keys = NULL) {
       $limit = (int) $_GET['per_page'];
     }
 
+    // Compute the pager element to use. This will take care of all pagers
+    // initialized before this is called. All later pagers will have to look out
+    // for themselves.
+    global $pager_page_array;
+    $pager_element = 0;
+    while (isset($pager_page_array[$pager_element])) {
+      ++$pager_element;
+    }
+
     try {
-      $results = search_api_page_search_execute($page, $keys, $limit);
+      $results = search_api_page_search_execute($page, $keys, $limit, $pager_element);
     }
     catch (SearchApiException $e) {
       drupal_set_message(t('An error occurred while executing the search. Please try again, or contact the site administrator if the problem persists.'), 'error');
@@ -77,8 +86,9 @@ function search_api_page_view($id, $keys = NULL) {
 
     // Load pager.
     if ($results['result count'] > $limit) {
-      pager_default_initialize($results['result count'], $limit);
+      pager_default_initialize($results['result count'], $limit, $pager_element);
       $ret['results']['#pager']['#theme'] = 'pager';
+      $ret['results']['#pager']['#element'] = $pager_element;
     }
 
     if (!empty($results['ignored'])) {
@@ -102,13 +112,15 @@ function search_api_page_view($id, $keys = NULL) {
  * @param string $keys
  *   The keywords to search for.
  * @param int $limit
- *   The maximum number of results to return.
+ *   (optional) The maximum number of results to return.
+ * @param int $pager_element
+ *   (optional) The pager element to use.
  *
  * @return array
  *   The search results as returned by SearchApiQueryInterface::execute().
  */
-function search_api_page_search_execute(Entity $page, $keys, $limit = 10) {
-  $offset = pager_find_page() * $limit;
+function search_api_page_search_execute(Entity $page, $keys, $limit = 10, $pager_element = 0) {
+  $offset = pager_find_page($pager_element) * $limit;
   $options = array(
     'search id' => 'search_api_page:' . $page->path,
     'parse mode' => $page->options['mode'],
