diff --git a/src/libnptm/Configuration.cpp b/src/libnptm/Configuration.cpp
index ac5d7531bbf4a5205f600a3b2acec71fd4dcfa61..70e51d0749e53b6cbaba8147903f5cfd7b5794fc 100644
--- a/src/libnptm/Configuration.cpp
+++ b/src/libnptm/Configuration.cpp
@@ -297,9 +297,10 @@ ScattererConfiguration::ScattererConfiguration(
   exdc = ex;
   wp = w;
   xip = x;
-  if (variable_name == "XIV") scale_vec = scale_vector;
-  else {
-    scale_vec = new double[number_of_scales]();
+  scale_vec = new double[number_of_scales]();
+  if (variable_name == "XIV") {
+    for (int xi = 0; xi < nxi; xi++) scale_vec[xi] = scale_vector[xi];
+  } else {
     const double pi2 = 2.0 * acos(-1.0);
     const double evc = 6.5821188e-16;
     for (int si = 0; si < number_of_scales; si++) {
@@ -312,6 +313,7 @@ ScattererConfiguration::ScattererConfiguration(
     }
   }
 }
+
 ScattererConfiguration::ScattererConfiguration(const  ScattererConfiguration& rhs)
 {
   number_of_spheres = rhs.number_of_spheres;
@@ -642,6 +644,7 @@ ScattererConfiguration* ScattererConfiguration::from_dedfb(string dedfb_file_nam
 							      _xip
   );
   delete[] file_lines;
+  delete[] variable_vector;
   return config;
 }