diff --git a/application/controllers/HomeController.php b/application/controllers/HomeController.php
index 00e6b45f3176c9d63b245769ce39e7835b77218c..b43b6e9429cc117a9e18f9f69186d244ec2e2218 100644
--- a/application/controllers/HomeController.php
+++ b/application/controllers/HomeController.php
@@ -15,10 +15,72 @@ class HomeController extends Nmc_Controller_Action
 
         $roles = ApprovalBodyRoles::getInstance()->fetchRolesForUser($user);
 
+        $myRequests = array();
+        $myRequests['subject']      = array();
+        $myRequests['courseNumber'] = array();
+        $myRequests['courseLetter'] = array();
+        $myRequests['request']      = array();
+        foreach($requests as $index => $request) {
+
+            $course = $request->getCourseGeneration();
+            $originalCourse = $course->getParentGeneration(true);
+            if (!$originalCourse) {
+                $originalCourse = $course;
+            }
+
+            $myRequests['subject'][]      = $originalCourse->subject;
+            $myRequests['courseNumber'][] = $originalCourse->courseNumber;
+            $myRequests['courseLetter'][] = $originalCourse->courseLetter;
+            $myRequests['request'][]      = $request;
+
+        }
+
+        array_multisort($myRequests['subject'],
+                        $myRequests['courseNumber'],
+                        $myRequests['courseLetter'],
+                        $myRequests['request']);
+
+
+        $rolesData = array();
+        foreach($roles as $role) {
+
+            $roleRequests = array();
+            $roleRequests['subject']      = array();
+            $roleRequests['courseNumber'] = array();
+            $roleRequests['courseLetter'] = array();
+            $roleRequests['request']      = array();
+
+            $requests = $role->getRequests();
+            foreach($requests as $index => $request) {
+
+                $course = $request->getCourseGeneration();
+                $originalCourse = $course->getParentGeneration(true);
+                if (!$originalCourse) {
+                    $originalCourse = $course;
+                }
+
+                $roleRequests['subject'][]      = $originalCourse->subject;
+                $roleRequests['courseNumber'][] = $originalCourse->courseNumber;
+                $roleRequests['courseLetter'][] = $originalCourse->courseLetter;
+                $roleRequests['request'][]      = $request;
+
+            }
+
+            array_multisort($roleRequests['subject'],
+                            $roleRequests['courseNumber'],
+                            $roleRequests['courseLetter'],
+                            $roleRequests['request']);
+
+            $roleData = array();
+            $roleData['role'] = $role;
+            $roleData['requests'] = $roleRequests['request'];
+            $rolesData[] = $roleData;
+        }
+
         $out = new Application_View();
         $out->user = $user;
-        $out->roles = $roles;
-        $out->myRequests = $requests;
+        $out->roles = $rolesData;
+        $out->myRequests = $myRequests['request'];
         $out->savedRequests = Nmc_Registry_Session::getInstance()->savedRequests;
         $out->savedCourses = Nmc_Registry_Session::getInstance()->savedCourses;
         $out->page = 'home';
diff --git a/application/views/home.xhtml b/application/views/home.xhtml
index 8aceae83864f9f8af4a1ac93a7e11fb6d334e677..40df08569bd23ace86d2759c3e393cc225145593 100755
--- a/application/views/home.xhtml
+++ b/application/views/home.xhtml
@@ -78,7 +78,7 @@
       <div class="bl"></div>
     </div>
     <div class="content">
-        <?php if($this->myRequests->count() == 0) { ?>
+        <?php if(count($this->myRequests) == 0) { ?>
         <h2>You currently have no requests.</h2>
         <?php } else { ?>
         <table class="course_list">
@@ -145,7 +145,7 @@
         <div class="tr"></div>
         <div class="tl">
             <h2>
-                <?php echo $role->name;?>
+                <?php echo $role['role']->name;?>
                 <img src="/images/arrow1.png" alt="arrow 1" class="toggle_arrow" />
             </h2>
             <h3><em></em>  </h3>
@@ -153,7 +153,7 @@
         <div class="bl"></div>
     </div>
     <div class="content">
-        <?php if($role->getRequests()->count() == 0) { ?>
+        <?php if(count($role['requests']) == 0) { ?>
         <h2>This role currently has no requests.</h2>
         <?php } else { ?>
         <form action="/Home/SubmitDecisions" method="post">
@@ -169,7 +169,7 @@
                 </tr>
                 <?php
                 $row = 0;
-                foreach($role->getRequests() as $request) {
+                foreach($role['requests'] as $request) {
                     $course = $request->getCourseGeneration();
                     $originalCourse = $course->getParentGeneration(true);
                     if (!$originalCourse) {