1. Zero out the residuals vector before it is used.
2. explicit comparison with NULL for jacobian and residuals pointers.
diff --git a/internal/ceres/program_evaluator.h b/internal/ceres/program_evaluator.h
index 7ec74b1..b309aad 100644
--- a/internal/ceres/program_evaluator.h
+++ b/internal/ceres/program_evaluator.h
@@ -126,7 +126,11 @@
       return false;
     }
 
-    if (jacobian) {
+    if (residuals != NULL) {
+      VectorRef(residuals, program_->NumResiduals()).setZero();
+    } 
+
+    if (jacobian != NULL) {
       jacobian->SetZero();
     }