diff --git a/ippl/src/Field/LField.hpp b/ippl/src/Field/LField.hpp
index ba8d22ca35a687e1234f717f43eed1f36adbfdaf..bf8b8a4dbdfdeea62d05d30e8f1bcd23a9c7e570 100644
--- a/ippl/src/Field/LField.hpp
+++ b/ippl/src/Field/LField.hpp
@@ -714,7 +714,7 @@ LField<T,Dim>::allocateStorage(int newsize)
 
   // Allocate the storage, creating some extra to account for offset, and
   // then add in the offset.
-  P = new T[newsize + extra];
+  P = new T[newsize + extra]();
   P += extra;
 
   ADDIPPLSTAT(incLFieldBytes, (newsize+extra)*sizeof(T));
diff --git a/ippl/src/SubField/SubFieldIter.h b/ippl/src/SubField/SubFieldIter.h
index 2e6457fdeee6035fb50eee6567c0b8781ddb833c..34e3a74e181ab675b1c0a42799b28f44d32eb58c 100644
--- a/ippl/src/SubField/SubFieldIter.h
+++ b/ippl/src/SubField/SubFieldIter.h
@@ -127,7 +127,11 @@ public:
       MyDomain(&(const_cast<S&>(s))),
       CurrentLField(ldf),
       MyBrackets(B) {
-	LFPtr = (*CurrentLField).second.get();
+      if (CurrentLField != getBareField().end_if()) {
+          LFPtr = (*CurrentLField).second.get();
+      } else {
+          LFPtr = nullptr;
+      }
   }
 
   // Default constructor
@@ -156,9 +160,15 @@ public:
 
   // Go to the next LField.
   typename BareField<T,Dim>::iterator_if nextLField() {
-    ++CurrentLField;
-    LFPtr = (*CurrentLField).second.get();
-    return CurrentLField;
+      if (CurrentLField != getBareField().end_if()) {
+          ++CurrentLField;
+      }
+      if (CurrentLField != getBareField().end_if()) {
+          LFPtr = (*CurrentLField).second.get();
+      } else {
+          LFPtr = nullptr;
+      }
+      return CurrentLField;
   }
 
   // Return the LField pointed to by LFPtr
diff --git a/tests/classic_src/Fields/Interpolation/NDGridTest.cpp b/tests/classic_src/Fields/Interpolation/NDGridTest.cpp
index f7791fa797476bd442d5ed1ba9cf3266ff37418d..6753c036f5bd43b14a664bfc24ad96ed93981097 100644
--- a/tests/classic_src/Fields/Interpolation/NDGridTest.cpp
+++ b/tests/classic_src/Fields/Interpolation/NDGridTest.cpp
@@ -148,7 +148,7 @@ TEST_F(NDGridTest, CoordVectorTest) {  // and newCoordArray
             EXPECT_NEAR(coords_v[j], gridCoordinates[i][j], 1e-12);
             EXPECT_NEAR(coords_a[j], gridCoordinates[i][j], 1e-12);
         }
-        delete coords_a;
+        delete[] coords_a;
     }
 }