diff --git a/include/ceres/jet.h b/include/ceres/jet.h
index 1879ea1..1f81743 100644
--- a/include/ceres/jet.h
+++ b/include/ceres/jet.h
@@ -179,18 +179,18 @@
   // (where T is a Jet<T, N>). This usually only happens in opt mode. Note that
   // the C++ standard mandates that e.g. default constructed doubles are
   // initialized to 0.0; see sections 8.5 of the C++03 standard.
-  Jet() : a() { v.setZero(); }
+  Jet() : a() { v.setConstant(Scalar()); }
 
   // Constructor from scalar: a + 0.
   explicit Jet(const T& value) {
     a = value;
-    v.setZero();
+    v.setConstant(Scalar());
   }
 
   // Constructor from scalar plus variable: a + t_i.
   Jet(const T& value, int k) {
     a = value;
-    v.setZero();
+    v.setConstant(Scalar());
     v[k] = T(1.0);
   }
 
diff --git a/internal/ceres/jet_test.cc b/internal/ceres/jet_test.cc
index dff660b..a6cad62 100644
--- a/internal/ceres/jet_test.cc
+++ b/internal/ceres/jet_test.cc
@@ -899,5 +899,28 @@
   ExpectJetsClose(r4(1), r4(1));
 }
 
+TEST(Jet, nested3x) {
+  typedef Jet<J,2> JJ;
+  typedef Jet<JJ,2> JJJ;
+
+  JJJ x;
+  x.a = JJ(J(1, 0), 0);
+  x.v[0] = JJ(J(1));
+
+  JJJ y = x * x * x;
+
+  ExpectClose(y.a.a.a, 1, kTolerance);
+  ExpectClose(y.v[0].a.a, 3., kTolerance);
+  ExpectClose(y.v[0].v[0].a, 6., kTolerance);
+  ExpectClose(y.v[0].v[0].v[0], 6., kTolerance);
+
+  JJJ e = exp(x);
+
+  ExpectClose(e.a.a.a, kE, kTolerance);
+  ExpectClose(e.v[0].a.a, kE, kTolerance);
+  ExpectClose(e.v[0].v[0].a, kE, kTolerance);
+  ExpectClose(e.v[0].v[0].v[0], kE, kTolerance);
+}
+
 }  // namespace internal
 }  // namespace ceres
