Fixed an exception raised in the master related to task statuses.
diff --git a/src/master/master.cpp b/src/master/master.cpp
index 4f4db93..e18df7c 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -1549,7 +1549,8 @@
   LOG(INFO) << "Status update " << update << " from " << pid;
 
   // TODO(brenden) Consider wiping the `data` and `message` fields?
-  if (task->state() == status.state()) {
+  if (task->statuses_size() > 0 &&
+      task->statuses(task->statuses_size() - 1).state() == task->state()) {
     task->mutable_statuses()->RemoveLast();
   }
   task->add_statuses()->CopyFrom(status);
diff --git a/src/slave/slave.cpp b/src/slave/slave.cpp
index 75d9e5d..9a8b82f 100644
--- a/src/slave/slave.cpp
+++ b/src/slave/slave.cpp
@@ -3284,7 +3284,8 @@
   if (launchedTasks.contains(status.task_id())) {
     Task* task = launchedTasks[status.task_id()];
     // TODO(brenden): Consider wiping the `data` and `message` fields?
-    if (task->state() == status.state()) {
+    if (task->statuses_size() > 0 &&
+        task->statuses(task->statuses_size() - 1).state() == task->state()) {
       task->mutable_statuses()->RemoveLast();
     }
     task->add_statuses()->CopyFrom(status);