diff --git a/sites/all/modules/webform/webform.module b/sites/all/modules/webform/webform.module
index 2fffd0c..b7ec8b4 100644
--- a/sites/all/modules/webform/webform.module
+++ b/sites/all/modules/webform/webform.module
@@ -1876,13 +1876,40 @@ function webform_client_form($form, &$form_state, $node, $submission, $is_draft
     if (!isset($form_state['storage']['component_tree'])) {
       $form_state['webform']['component_tree'] = array();
       $form_state['webform']['page_count'] = 1;
-      $form_state['webform']['page_num'] = 1;
+      
+      if(isset($form_state['clicked_button']['#parents'])){
+        if($form_state['clicked_button']['#parents'] == 'next' || $form_state['clicked_button']['#parents'] == 'previous' || $form_state['clicked_button']['#parents'] == 'draft') {
+          $form_state['webform']['page_num'] = 1;
+          
+        }
+      }
+      else{
+        if(isset($_GET['index'])){
+          $form_state['webform']['page_num'] = $_GET['index'];
+        }
+        else{
+          $form_state['webform']['page_num'] = 1;
+        }
+      }
+      
       _webform_components_tree_build($node->webform['components'], $form_state['webform']['component_tree'], 0, $form_state['webform']['page_count']);
     }
     else {
       $form_state['webform']['component_tree'] = $form_state['storage']['component_tree'];
       $form_state['webform']['page_count'] = $form_state['storage']['page_count'];
-      $form_state['webform']['page_num'] = $form_state['storage']['page_num'];
+      
+      if($form_state['clicked_button']['#parents'][0] == 'next' || $form_state['clicked_button']['#parents'][0] == 'previous' || $form_state['clicked_button']['#parents'][0] == 'draft') {
+        $form_state['webform']['page_num'] = $form_state['storage']['page_num'];
+      }
+      else {
+        if( isset($_GET['index'])){
+          $form_state['webform']['page_num'] = $_GET['index'];
+        }
+        else{
+          $form_state['webform']['page_num'] = $form_state['storage']['page_num'];
+        }
+      }
+      
     }
 
     // Shorten up our variable names.
@@ -2284,7 +2311,20 @@ function webform_client_form_pages($form, &$form_state) {
   if (isset($form_state['webform']['component_tree'])) {
     $form_state['storage']['component_tree'] = $form_state['webform']['component_tree'];
     $form_state['storage']['page_count'] = $form_state['webform']['page_count'];
-    $form_state['storage']['page_num'] = $form_state['webform']['page_num'];
+    
+    if(end($form_state['clicked_button']['#parents']) == 'next' || end($form_state['clicked_button']['#parents']) == 'previous' || end($form_state['clicked_button']['#parents']) == 'draft') {
+        $form_state['storage']['page_num'] = $form_state['webform']['page_num'];
+    }
+    else {  
+       if(isset($_GET['index'])){
+         $form_state['webform']['page_num'] = $_GET['index'];
+       }
+       else{
+        $form_state['storage']['page_num'] = $form_state['webform']['page_num'];
+       }
+    }
+    
+    
   }
 
   // Perform post processing by components.
