Index: src/systems/fem_system.C
===================================================================
--- src/systems/fem_system.C	(revision 5631)
+++ src/systems/fem_system.C	(working copy)
@@ -72,11 +72,11 @@
           _femcontext.pre_fe_reinit(_sys, el);
           _femcontext.elem_fe_reinit();
 
-          bool jacobian_computed =
+          bool elem_jacobian_computed =
 	    _sys.time_solver->element_residual(_get_jacobian, _femcontext);
 
           // Compute a numeric jacobian if we have to
-          if (_get_jacobian && !jacobian_computed)
+          if (_get_jacobian && !elem_jacobian_computed)
             {
               // Make sure we didn't compute a jacobian and lie about it
               libmesh_assert(_femcontext.elem_jacobian.l1_norm() == 0.0);
@@ -86,7 +86,7 @@
 
           // Compute a numeric jacobian if we're asked to verify the
           // analytic jacobian we got
-          if (_get_jacobian && jacobian_computed &&
+          if (_get_jacobian && elem_jacobian_computed &&
               _sys.verify_analytic_jacobians != 0.0)
             {
               DenseMatrix<Number> analytic_jacobian(_femcontext.elem_jacobian);
@@ -149,18 +149,29 @@
 #ifndef DEBUG
 	      // Even if we're not in DEBUG mode, when we're verifying
 	      // analytic jacobians we'll want to verify each side's
-              // jacobian contribution separately
-              if (_sys.verify_analytic_jacobians != 0.0 && _get_jacobian)
+              // jacobian contribution separately.
+	      /* PB: We also need to account for the case when the user wants to
+		 use numerical Jacobians and not analytic Jacobians */
+              if ( (_sys.verify_analytic_jacobians != 0.0 && _get_jacobian) ||
+		   (!elem_jacobian_computed && _get_jacobian) )
 #endif // ifndef DEBUG
                 {
                   old_jacobian = _femcontext.elem_jacobian;
                   _femcontext.elem_jacobian.zero();
                 }
-	      jacobian_computed =
+	      bool side_jacobian_computed =
                 _sys.time_solver->side_residual(_get_jacobian, _femcontext);
 
+               // Need to account for the case where we compute the element Jacobian, but not
+               // not the side Jacobian.
+               if( elem_jacobian_computed && !side_jacobian_computed && _get_jacobian )
+                 {
+                   old_jacobian = _femcontext.elem_jacobian;
+                  _femcontext.elem_jacobian.zero();
+                 }
+
               // Compute a numeric jacobian if we have to
-              if (_get_jacobian && !jacobian_computed)
+              if (_get_jacobian && !side_jacobian_computed)
                 {
 	          // In DEBUG mode, we've already set elem_jacobian == 0,
 	          // so we can make sure side_residual didn't compute a
@@ -171,19 +182,13 @@
                   // Logging of numerical jacobians is done separately
                   _sys.numerical_side_jacobian(_femcontext);
 
-                  // If we're in DEBUG mode or if
-	          // verify_analytic_jacobians is on, we've moved
-                  // elem_jacobian's accumulated values into old_jacobian.
-                  // Now let's add them back.
-#ifndef DEBUG
-                  if (_sys.verify_analytic_jacobians != 0.0)
-#endif // ifndef DEBUG
-                    _femcontext.elem_jacobian += old_jacobian;
+		  // Add back in element interior numerical Jacobian
+		  _femcontext.elem_jacobian += old_jacobian;
                 }
 
               // Compute a numeric jacobian if we're asked to verify the
               // analytic jacobian we got
-	      if (_get_jacobian && jacobian_computed &&
+	      if (_get_jacobian && side_jacobian_computed &&
                   _sys.verify_analytic_jacobians != 0.0)
                 {
 	          DenseMatrix<Number> analytic_jacobian(_femcontext.elem_jacobian);
@@ -231,7 +236,7 @@
 	      // In DEBUG mode, we've set elem_jacobian == 0, and we
               // may still need to add the old jacobian back
 #ifdef DEBUG
-	      if (_get_jacobian && jacobian_computed &&
+	      if (_get_jacobian && elem_jacobian_computed &&
                   _sys.verify_analytic_jacobians == 0.0)
                 {
                   _femcontext.elem_jacobian += old_jacobian;
Index: examples/adjoints/adjoints_ex1/general.in
===================================================================
--- examples/adjoints/adjoints_ex1/general.in	(revision 5631)
+++ examples/adjoints/adjoints_ex1/general.in	(working copy)
@@ -71,10 +71,10 @@
 fe_order = 2
 
 # Use analytic jacobians instead of numerical ones?
-analytic_jacobians = true
+analytic_jacobians = false 
 
 # Verify analytic jacobians against numerical ones?
-verify_analytic_jacobians = 1.e-4
+verify_analytic_jacobians = 0.0 
 
 # Detailed debugging options
 print_solution_norms = false
Index: examples/adjoints/adjoints_ex2/general.in
===================================================================
--- examples/adjoints/adjoints_ex2/general.in	(revision 5631)
+++ examples/adjoints/adjoints_ex2/general.in	(working copy)
@@ -67,7 +67,7 @@
 analytic_jacobians = true
 
 # Don't verify analytic jacobians against numerical ones.
-verify_analytic_jacobians = 0.
+verify_analytic_jacobians = 1.0e-4
 
 # Detailed debugging options
 print_solution_norms = false
