diff --git a/application/modules/requests/controllers/IndexController.php b/application/modules/requests/controllers/IndexController.php
index 9f6b67f997a051f55f5653be9e3921036bd8ddba..7fe94a0e7dd8cad922afd09c78d26b262e746013 100644
--- a/application/modules/requests/controllers/IndexController.php
+++ b/application/modules/requests/controllers/IndexController.php
@@ -46,6 +46,18 @@ class Requests_IndexController extends App_Controller_Action
             $savedRequests = array();
 		}
 
+		
+		if (!Unl_Util::isArray($session->sortBy)) {
+			$session->sortBy = array();
+		}
+		if ($in['sortBy']) {
+			$oldSortByKey = array_search($in['sortBy'], $session->sortBy);
+			unset($session->sortBy[$oldSortByKey]);
+			array_unshift($session->sortBy, $in['sortBy']);
+		}
+		
+		
+		
 		$sortKeys = array();
 		$userRequestsData = array();
 		foreach ($userRequests as $requestId => $userRequest)
@@ -64,16 +76,19 @@ class Requests_IndexController extends App_Controller_Action
             if ($requestVotes[$requestId] instanceof Requests_ApproverVoteModel) {
                 $request['vote'] = $requestVotes[$requestId];
             }
-            if ($in['sortBy'] == 'courseCode') {
-                $sortKeys[] = $request['currentCourse']->getCourseCode();
-            } else if ($in['sortBy'] == 'college') {
-                $sortKeys[] = $request['currentCourse']->getCollege();
-            } else if ($in['sortBy'] == 'requestType') {
-                $sortKeys[] = $request['request']->getType();
+            foreach ($session->sortBy as $key => $sortBy) {
+	            if ($sortBy == 'courseCode') {
+	                $sortKeys[$key][] = $request['currentCourse']->getCourseCode();
+	            } else if ($sortBy == 'college') {
+	                $sortKeys[$key][] = $request['currentCourse']->getCollege();
+	            } else if ($sortBy == 'requestType') {
+	                $sortKeys[$key][] = $request['request']->getType();
+	            }
             }
             $userRequestsData[] = $request;
 		}
-		array_multisort($sortKeys, $userRequestsData);
+        $sortKeys[] =& $userRequestsData;
+        call_user_func_array('array_multisort', $sortKeys);
 
 		$roleData = array();
 		foreach ($userRoles as $roleId => $userRole) {
@@ -98,16 +113,21 @@ class Requests_IndexController extends App_Controller_Action
                     if ($requestVotes[$requestId] instanceof Requests_ApproverVoteModel) {
                         $request['vote'] = $requestVotes[$requestId];
                     }
-                    if ($in['sortBy'] == 'courseCode') {
-                        $sortKeys[] = $request['currentCourse']->getCourseCode();
-                    } else if ($in['sortBy'] == 'college') {
-                    	$sortKeys[] = $request['currentCourse']->getCollege();
-                    } else if ($in['sortBy'] == 'requestType') {
-                    	$sortKeys[] = $request['request']->getType();
-                    }
+		            foreach ($session->sortBy as $key => $sortBy) {
+		                if ($sortBy == 'courseCode') {
+		                    $sortKeys[$key][] = $request['currentCourse']->getCourseCode();
+		                } else if ($sortBy == 'college') {
+		                    $sortKeys[$key][] = $request['currentCourse']->getCollege();
+		                } else if ($sortBy == 'requestType') {
+		                    $sortKeys[$key][] = $request['request']->getType();
+		                } else if ($sortBy == 'pendingAction') {
+		                	$sortKeys[$key][] = $request['action']->getName();
+		                }
+		            }
                     $role['requests'][] = $request;
                 }
-                array_multisort($sortKeys, $role['requests']);
+                $sortKeys[] =& $role['requests'];
+		        call_user_func_array('array_multisort', $sortKeys);
             }
 
 		    if (Unl_Util::isArray($watchingRequests[$roleId])) {
@@ -124,16 +144,19 @@ class Requests_IndexController extends App_Controller_Action
                     } else {
                         $request['viewTime'] = 0;
                     }
-                    if ($in['sortBy'] == 'courseCode') {
-                        $sortKeys[] = $request['currentCourse']->getCourseCode();
-                    } else if ($in['sortBy'] == 'college') {
-                        $sortKeys[] = $request['currentCourse']->getCollege();
-                    } else if ($in['sortBy'] == 'requestType') {
-                        $sortKeys[] = $request['request']->getType();
-                    }
+		            foreach ($session->sortBy as $key => $sortBy) {
+		                if ($sortBy == 'courseCode') {
+		                    $sortKeys[$key][] = $request['currentCourse']->getCourseCode();
+		                } else if ($sortBy == 'college') {
+		                    $sortKeys[$key][] = $request['currentCourse']->getCollege();
+		                } else if ($sortBy == 'requestType') {
+		                    $sortKeys[$key][] = $request['request']->getType();
+		                }
+		            }
                     $role['watchingRequests'][] = $request;
                 }
-                array_multisort($sortKeys, $role['watchingRequests']);
+                $sortKeys[] =& $role['watchingRequests'];
+                call_user_func_array('array_multisort', $sortKeys);
             }
 			$roleData[] = $role;
 		}
diff --git a/application/modules/requests/views/scripts/index/index.phtml b/application/modules/requests/views/scripts/index/index.phtml
index 1fe31dde7b2cbfa39b4e70696c5586f6c54632a3..e0cf87363b7db29657a03f57b3d8ae0af3e6c00a 100644
--- a/application/modules/requests/views/scripts/index/index.phtml
+++ b/application/modules/requests/views/scripts/index/index.phtml
@@ -252,7 +252,7 @@ foreach($this->roles as $roleData) {
                     <th class="course"><a href="<?php echo $this->url(array('sortBy' => 'courseCode')); ?>">Course</a></th>
                     <th class="college"><a href="<?php echo $this->url(array('sortBy' => 'college')); ?>">College</a></th>
                     <th class="type"><a href="<?php echo $this->url(array('sortBy' => 'requestType')); ?>">Type</a></th>
-                    <th class="pending_action">Pending Action</th>
+                    <th class="pending_action"><a href="<?php echo $this->url(array('sortBy' => 'pendingAction')); ?>">Pending Action</a></th>
                     <th class="status">Status</th>
                     <th class="view_edit">View/Edit</th>
                 </tr>