diff --git a/src/USER-OMP/pppm_disp_omp.cpp b/src/USER-OMP/pppm_disp_omp.cpp
index cdf4b3bce5a528ac3fde7fba4ee6080b343c4cbd..277da9d4b3851c62b2a504b4b7d5e569df613657 100644
--- a/src/USER-OMP/pppm_disp_omp.cpp
+++ b/src/USER-OMP/pppm_disp_omp.cpp
@@ -50,6 +50,13 @@ PPPMDispOMP::PPPMDispOMP(LAMMPS *lmp, int narg, char **arg) :
   suffix_flag |= Suffix::OMP;
 }
 
+/* ---------------------------------------------------------------------- */
+
+PPPMDispOMP::~PPPMDispOMP()
+{
+  deallocate();
+}
+
 /* ----------------------------------------------------------------------
    allocate memory that depends on # of K-vectors and order
 ------------------------------------------------------------------------- */
diff --git a/src/USER-OMP/pppm_disp_omp.h b/src/USER-OMP/pppm_disp_omp.h
index 060f2694715be46e9c85ec16918e65da7d949f97..86c213282a22555658962de11a7b6ac0a9016138 100644
--- a/src/USER-OMP/pppm_disp_omp.h
+++ b/src/USER-OMP/pppm_disp_omp.h
@@ -28,7 +28,7 @@ namespace LAMMPS_NS {
   class PPPMDispOMP : public PPPMDisp, public ThrOMP {
  public:
   PPPMDispOMP(class LAMMPS *, int, char **);
-  virtual ~PPPMDispOMP () {};
+  virtual ~PPPMDispOMP ();
   virtual void compute(int, int);
 
  protected: