diff --git a/Common/DataModel/vtkUnstructuredGridCellIterator.cxx b/Common/DataModel/vtkUnstructuredGridCellIterator.cxx
index 8223b7f888dc211c6edd52433fd8172d0f2b807f..a2967d14fab7ec75a770cc413132feef68224219 100644
--- a/Common/DataModel/vtkUnstructuredGridCellIterator.cxx
+++ b/Common/DataModel/vtkUnstructuredGridCellIterator.cxx
@@ -33,20 +33,55 @@ void vtkUnstructuredGridCellIterator::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 
-  os << indent << "Cells:\n";
-  this->Cells->PrintSelf(os, indent.GetNextIndent());
+  if (this->Cells)
+  {
+    os << indent << "Cells:\n";
+    this->Cells->PrintSelf(os, indent.GetNextIndent());
+  }
+  else
+  {
+    os << indent << "Cells: (none)" << endl;
+  }
 
-  os << indent << "Types:\n";
-  this->Types->PrintSelf(os, indent.GetNextIndent());
+  if (this->Types)
+  {
+    os << indent << "Types:\n";
+    this->Types->PrintSelf(os, indent.GetNextIndent());
+  }
+  else
+  {
+    os << indent << "Types: (none)" << endl;
+  }
 
-  os << indent << "FaceConn:\n";
-  this->FaceConn->PrintSelf(os, indent.GetNextIndent());
+  if (this->FaceConn)
+  {
+    os << indent << "FaceConn:\n";
+    this->FaceConn->PrintSelf(os, indent.GetNextIndent());
+  }
+  else
+  {
+    os << indent << "FaceConn: (none)" << endl;
+  }
 
-  os << indent << "FaceLocs:\n";
-  this->FaceLocs->PrintSelf(os, indent.GetNextIndent());
+  if (this->FaceLocs)
+  {
+    os << indent << "FaceLocs:\n";
+    this->FaceLocs->PrintSelf(os, indent.GetNextIndent());
+  }
+  else
+  {
+    os << indent << "FaceLocs: (none)" << endl;
+  }
 
-  os << indent << "Coords:\n";
-  this->Coords->PrintSelf(os, indent.GetNextIndent());
+  if (this->Coords)
+  {
+    os << indent << "Coords:\n";
+    this->Coords->PrintSelf(os, indent.GetNextIndent());
+  }
+  else
+  {
+    os << indent << "Coords: (none)" << endl;
+  }
 }
 
 //------------------------------------------------------------------------------
diff --git a/Filters/Parallel/vtkPTextureMapToSphere.cxx b/Filters/Parallel/vtkPTextureMapToSphere.cxx
index f154db21fe1c4e7f14c8572b64c04f0e7a613539..1fb3fc71f6c4ff477f4f835db3fb9421896951f2 100644
--- a/Filters/Parallel/vtkPTextureMapToSphere.cxx
+++ b/Filters/Parallel/vtkPTextureMapToSphere.cxx
@@ -67,5 +67,13 @@ void vtkPTextureMapToSphere::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 
-  os << indent << "Controller: " << *this->Controller << std::endl;
+  if (this->Controller)
+  {
+    os << indent << "Controller:\n";
+    this->Controller->PrintSelf(os, indent.GetNextIndent());
+  }
+  else
+  {
+    os << indent << "Controller: (none)" << endl;
+  }
 }
diff --git a/Filters/Texture/vtkScalarsToTextureFilter.cxx b/Filters/Texture/vtkScalarsToTextureFilter.cxx
index 260dbdb60023b8ac93f71ceb9f4d33a386cb9d91..34e5ce77fa004ad43015896355c87ee7d901e445 100644
--- a/Filters/Texture/vtkScalarsToTextureFilter.cxx
+++ b/Filters/Texture/vtkScalarsToTextureFilter.cxx
@@ -41,9 +41,17 @@ void vtkScalarsToTextureFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Texture dimensions: " << this->TextureDimensions[0] << "x"
-     << this->TextureDimensions[1] << '\n'
-     << indent << "Transfer function:\n";
-  this->TransferFunction->PrintSelf(os, indent.GetNextIndent());
+     << this->TextureDimensions[1] << '\n';
+
+  if (this->TransferFunction)
+  {
+    os << indent << "Transfer function:\n";
+    this->TransferFunction->PrintSelf(os, indent.GetNextIndent());
+  }
+  else
+  {
+    os << indent << "Transfer function: (none)" << endl;
+  }
 }
 
 //-----------------------------------------------------------------------------
diff --git a/IO/AMR/vtkAMReXGridReader.cxx b/IO/AMR/vtkAMReXGridReader.cxx
index eaa49d6105054f0ec2520c04fde4dd413c7e995e..5e2b89fd3bcf8cea8510b49f30f16c62b583da24 100644
--- a/IO/AMR/vtkAMReXGridReader.cxx
+++ b/IO/AMR/vtkAMReXGridReader.cxx
@@ -65,20 +65,30 @@ vtkAMReXGridReader::~vtkAMReXGridReader()
 void vtkAMReXGridReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
-  os << indent << "FileName: " << this->FileName << endl;
-  if (this->Internal)
+
+  if (this->FileName)
+  {
+    os << indent << "FileName: " << this->FileName << endl;
+  }
+  else
+  {
+    os << indent << "FileName: (none)" << endl;
+  }
+
+  if (this->Internal->Header)
   {
     os << indent << "Header: " << endl;
     this->Internal->Header->PrintSelf(os, indent.GetNextIndent());
-    os << indent << "LevelHeader(s): " << endl;
-    for (int cc = 0; cc < GetNumberOfLevels() + 1; ++cc)
-    {
-      this->Internal->LevelHeader[cc]->PrintSelfLevelHeader(os, indent.GetNextIndent());
-    }
   }
   else
   {
-    os << indent << "Internal: nullptr" << endl;
+    os << indent << "Header: (none)" << endl;
+  }
+
+  os << indent << "LevelHeader(s): " << (this->GetNumberOfLevels() >= 0 ? "" : "(none)") << endl;
+  for (int cc = 0; cc < GetNumberOfLevels() + 1; ++cc)
+  {
+    this->Internal->LevelHeader[cc]->PrintSelfLevelHeader(os, indent.GetNextIndent());
   }
 }