diff --git a/vpt2dot.cxx b/vpt2dot.cxx
index 59997ebed634db610922f0af14cbf476d4280b33..885c00c591a88b3635217d89c7e758d4ce256a93 100644
--- a/vpt2dot.cxx
+++ b/vpt2dot.cxx
@@ -5,6 +5,7 @@
 #include "vtkPolyDataToGraph.h"
 #include "vtkBoostGraphAdapter.h"
 
+#include <vtkNew.h>
 #include <boost/graph/graphviz.hpp>
 
 #include <vtkCallbackCommand.h>
@@ -72,7 +73,8 @@ int main(int argc, char *argv[])
     reader->Update();
 
     // VTK_CREATE(vtkPolyDataToGraph, filter);
-    vtkSmartPointer<vtkPolyDataToGraph> filter;
+    // vtkSmartPointer<vtkPolyDataToGraph> filter;
+    vtkNew<vtkPolyDataToGraph> filter;
     filter->SetInputConnection(0, reader->GetOutputPort());
     filter->AddObserver(vtkCommand::AnyEvent, eventCallbackVTK);
     filter->Update();
diff --git a/vtkPolyDataToGraph.cxx b/vtkPolyDataToGraph.cxx
index 31bf7926084d010a2d6bcc30e6a98637728ae29c..43eccd7de002d28a19c78d6feea965c89116df19 100644
--- a/vtkPolyDataToGraph.cxx
+++ b/vtkPolyDataToGraph.cxx
@@ -42,6 +42,11 @@ int vtkMeshToGraph::FillOutputPortInformation(
 }
 */
 
+vtkPolyDataToGraph *vtkPolyDataToGraph::New()
+{
+  return new vtkPolyDataToGraph;
+}
+
 //----------------------------------------------------------------------------
 int vtkPolyDataToGraph::FillInputPortInformation(
     int vtkNotUsed(port), vtkInformation *info)