diff -Naur original/mod/scorm/lib.php dev/mod/scorm/lib.php
--- original/mod/scorm/lib.php	2009-10-28 08:02:44.000000000 +0100
+++ dev/mod/scorm/lib.php	2010-02-08 14:23:56.779903400 +0100
@@ -252,6 +252,12 @@
     $lastmodify = 0;
     $sometoreport = false;
     $report = '';
+	
+	// First Access and Last Access dates for SCOs
+    require_once("locallib.php");
+	$timetracks = scorm_get_sco_runtime($scorm->id, false, $user->id);
+	$firstmodify = $timetracks->start;
+	$lastmodify = $timetracks->finish;
     
     $grades = grade_get_grades($course->id, 'mod', 'scorm', $scorm->id, $user->id);
     if (!empty($grades->items[0]->grades)) {
@@ -318,7 +324,6 @@
                     }
 
                     if ($sco->launch) {
-                        require_once('locallib.php');
                         $score = '';
                         $totaltime = '';
                         if ($usertrack=scorm_get_tracks($sco->id,$user->id)) {
@@ -327,14 +332,6 @@
                             }
                             $strstatus = get_string($usertrack->status,'scorm');
                             $report .= "<img src='".$scormpixdir.'/'.$usertrack->status.".gif' alt='$strstatus' title='$strstatus' />";
-                            if ($usertrack->timemodified != 0) {
-                                if ($usertrack->timemodified > $lastmodify) {
-                                    $lastmodify = $usertrack->timemodified;
-                                }
-                                if ($usertrack->timemodified < $firstmodify) {
-                                    $firstmodify = $usertrack->timemodified;
-                                }
-                            }
                         } else {
                             if ($sco->scormtype == 'sco') {
                                 $report .= '<img src="'.$scormpixdir.'/'.'notattempted.gif" alt="'.get_string('notattempted','scorm').'" title="'.get_string('notattempted','scorm').'" />';
diff -Naur original/mod/scorm/locallib.php dev/mod/scorm/locallib.php
--- original/mod/scorm/locallib.php	2009-12-19 08:02:48.000000000 +0100
+++ dev/mod/scorm/locallib.php	2010-02-08 14:22:42.520708600 +0100
@@ -405,11 +405,7 @@
         $tracks = array_values($tracks);
     }
 
-    if ($start_track = get_records_select('scorm_scoes_track',"$sql AND element='x.start.time' ORDER BY scoid ASC")) {
-        $start_track = array_values($start_track);
-        $timedata->start = $start_track[0]->value;
-    }
-    else if ($tracks) {
+	if ($tracks) {
         $timedata->start = $tracks[0]->timemodified;
     }
     else {
@@ -1324,4 +1320,45 @@
     delete_records('scorm_scoes_track', 'userid', $userid, 'scormid', $scormid, 'attempt', $attemptid);
     return true;
 }
 ?>