diff --git a/src/fft_setup.cpp b/src/fft_setup.cpp
index 2914a3bd367a6853385dcfd9a5445ab50912c08f..49440434d2f94799cfe96aaa044966856d9525fb 100644
--- a/src/fft_setup.cpp
+++ b/src/fft_setup.cpp
@@ -542,6 +542,12 @@ clFFT_GetSize(clFFT_Plan Plan, size_t* workSize)
   }
   cl_fft_plan *plan = (cl_fft_plan *) Plan;
   *workSize = plan->tempmemobj.size + plan->tempmemobj_real.size + plan->tempmemobj_imag.size + plan->cossin_LUT_d1.size;
+  // Additional alloc from allocateTemporaryBufferInterleaved() or allocateTemporaryBufferPlannar()
+  if(plan->temp_buffer_needed) {
+      cl_uint batchSize = 1;
+      size_t tmpLength = plan->n.x * plan->n.y * plan->n.z * batchSize * 2 * sizeof(cl_float);
+      *workSize += tmpLength;
+  }
 
   return CL_SUCCESS;
 }