diff --git a/src/remap_vars.cc b/src/remap_vars.cc
index 2f65cbf8d249024b781c4a2f092987bbaa5a3732..a5dfdbedf0a32d6ae6dee0336b932498ebf06279 100644
--- a/src/remap_vars.cc
+++ b/src/remap_vars.cc
@@ -1,4 +1,5 @@
 #include "cdo_int.h"
+#include "cdo_wtime.h"
 #include "cdoOptions.h"
 #include "remap_vars.h"
 #include "timer.h"
@@ -50,6 +51,8 @@ remap(double *restrict dst_array, double missval, size_t dst_size, const RemapVa
 
   extern int timer_remap;
 
+  double start = cdoVerbose ? cdo_get_wtime() : 0;
+
   // Check the order of the interpolation
 
   int iorder = (src_grad1 == NULL) ? 1 : 2;
@@ -93,14 +96,24 @@ remap(double *restrict dst_array, double missval, size_t dst_size, const RemapVa
             {
               size_t nlinks = num_links / lpv;
 
-              if (lpv == 4)
+              if (lpv == 1)
                 {
 #ifdef _OPENMP
-#pragma omp parallel for default(none) shared(dst_array, src_array, dst_add, src_add, map_wts, num_wts, nlinks, lpv)
+#pragma omp parallel for default(none) shared(dst_array, src_array, dst_add, src_add, map_wts, nlinks)
 #endif
                   for (size_t n = 0; n < nlinks; ++n)
                     {
-                      size_t noff = n * lpv;
+                      dst_array[dst_add[n]] = src_array[src_add[n]] * map_wts[n];
+                    }
+                }
+              else if (lpv == 4)
+                {
+#ifdef _OPENMP
+#pragma omp parallel for default(none) shared(dst_array, src_array, dst_add, src_add, map_wts, num_wts, nlinks)
+#endif
+                  for (size_t n = 0; n < nlinks; ++n)
+                    {
+                      size_t noff = n * 4;
                       dst_array[dst_add[noff]] = src_array[src_add[noff]] * map_wts[num_wts * (noff)]
                                                  + src_array[src_add[noff + 1]] * map_wts[num_wts * (noff + 1)]
                                                  + src_array[src_add[noff + 2]] * map_wts[num_wts * (noff + 2)]
@@ -161,6 +174,8 @@ remap(double *restrict dst_array, double missval, size_t dst_size, const RemapVa
         }
     }
 
+  if (cdoVerbose) cdoPrint("Remap: %.2f seconds", cdo_get_wtime() - start);
+
   if (cdoTimer) timer_stop(timer_remap);
 }