diff --git a/core/src/main/scala/org/apache/spark/scheduler/TaskSchedulerImpl.scala b/core/src/main/scala/org/apache/spark/scheduler/TaskSchedulerImpl.scala
index 8ce8fb15efbc22922228bcc34f036e66f64d247b..371fb8602f785af59da2cccd2de11a92b0d5f6af 100644
--- a/core/src/main/scala/org/apache/spark/scheduler/TaskSchedulerImpl.scala
+++ b/core/src/main/scala/org/apache/spark/scheduler/TaskSchedulerImpl.scala
@@ -389,11 +389,6 @@ private[spark] class TaskSchedulerImpl(
     // (taskId, stageId, stageAttemptId, accumUpdates)
     val accumUpdatesWithTaskIds: Array[(Long, Int, Int, Seq[AccumulableInfo])] = synchronized {
       accumUpdates.flatMap { case (id, updates) =>
-        // We should call `acc.value` here as we are at driver side now.  However, the RPC framework
-        // optimizes local message delivery so that messages do not need to de serialized and
-        // deserialized.  This brings trouble to the accumulator framework, which depends on
-        // serialization to set the `atDriverSide` flag.  Here we call `acc.localValue` instead to
-        // be more robust about this issue.
         val accInfos = updates.map(acc => acc.toInfo(Some(acc.value), None))
         taskIdToTaskSetManager.get(id).map { taskSetMgr =>
           (id, taskSetMgr.stageId, taskSetMgr.taskSet.stageAttemptId, accInfos)