diff --git a/allocate.c b/allocate.c
index 9d26980c3149be452f0b91ff6e1bee9f86934aea..8734775adf37220b03b51efd6a8fbf5175f6e824 100644
--- a/allocate.c
+++ b/allocate.c
@@ -180,15 +180,21 @@ int main(int argc, char *argv[]) {
             //  Log finished processes.
             struct node * currNode  =  *completedProcesses; //(struct node *)
             headData(completedProcesses);
-            process * currProc = currNode->data;
-            while ( currNode ){
-                if ( currProc!= NULL &&  currProc->timeCompleted >= currentTime  ) {
-                    printf("%d,FINISHED,pid=%s,proc_remaining=%d\n",
-                           currProc->timeCompleted, currProc->processID, numProcessesLeft);
+            process * currProc = currNode->data;;// = currNode->data;
+            if (currProc != NULL){
+                //currProc
+                while ( currNode ){
+                    llist_print(completedProcesses,(void (*)(void *)) &printQEntry);
+                    printf("current time: %d\n currProc TC: %d\n" ,currentTime, currProc->timeCompleted );
+                    if ( currProc!= NULL &&  currProc->timeCompleted >= currentTime ) {
+                        printf("%d,FINISHED,pid=%s,proc_remaining=%d\n",
+                               currProc->timeCompleted, currProc->processID, numProcessesLeft);
+                    }
+                    currNode = currNode->next;
+                    if (currNode) currProc = currNode->data;
                 }
-                currNode = currNode->next;
-                if (currNode) currProc = currNode->data;
             }
+
             //  Log started processes.
             for (int j = 0; j < numCPU; j++) {
                 headProcess = headData(CPUs[j].processQueue);
@@ -243,6 +249,7 @@ int main(int argc, char *argv[]) {
             if ( currProc!= NULL &&  currProc->timeCompleted >= currentTime  ) {
                 printf("%d,FINISHED,pid=%s,proc_remaining=%d\n",
                        currProc->timeCompleted, currProc->processID, numProcessesLeft);
+
             }
             currNode = currNode->next;
             if (currNode) currProc = currNode->data;
@@ -262,6 +269,7 @@ int main(int argc, char *argv[]) {
 //        currentTime += deltaTime;
     }
 
+    //printf("Makespan %d\n", currentTime);
 //    printf("Completed Queue:");
 //    llist_print(completedProcesses, (void (*)(void *)) &printQEntry);
 
@@ -456,7 +464,6 @@ void calStats(llist *completedProcesses, int *currentTime, float *aveTurnaroundT
     float overhead, totOverhead, maxOverhead;
 
     process *p = headData(completedProcesses);
-    *currentTime = p->timeCompleted;
 
     count = 0;
     maxOverhead = 0;