diff --git a/Utilities/ITK/Code/BasicFilters/itkWarpImageFilter.h b/Utilities/ITK/Code/BasicFilters/itkWarpImageFilter.h
index c02b7813227e9ac319763719e5bb9f9d1fa0d66d..68eba73bd253804647c7748a5669b9de65d27095 100644
--- a/Utilities/ITK/Code/BasicFilters/itkWarpImageFilter.h
+++ b/Utilities/ITK/Code/BasicFilters/itkWarpImageFilter.h
@@ -223,8 +223,8 @@ public:
     (Concept::SameDimension<ImageDimension, InputImageDimension>));
   itkConceptMacro(SameDimensionCheck2,
     (Concept::SameDimension<ImageDimension, DeformationFieldDimension>));
-  itkConceptMacro(InputHasNumericTraitsCheck,
-    (Concept::HasNumericTraits<typename TInputImage::PixelType>));
+  /** itkConceptMacro(InputHasNumericTraitsCheck,
+    (Concept::HasNumericTraits<typename TInputImage::PixelType>));*/
   itkConceptMacro(DeformationFieldHasNumericTraitsCheck,
     (Concept::HasNumericTraits<typename TDeformationField::PixelType::ValueType>));
   /** End concept checking */
diff --git a/Utilities/ITK/Code/BasicFilters/itkWarpImageFilter.txx b/Utilities/ITK/Code/BasicFilters/itkWarpImageFilter.txx
index c64cc48bdf26282bb9dbc7fe0c893e9404d5288d..bd3643726f2237a9370ea98382e3844da5dc73c6 100644
--- a/Utilities/ITK/Code/BasicFilters/itkWarpImageFilter.txx
+++ b/Utilities/ITK/Code/BasicFilters/itkWarpImageFilter.txx
@@ -26,6 +26,7 @@
 #include "vnl/vnl_math.h"
 
 #include "itkVariableLengthVector.h"
+#include "itkPixelBuilder.h"
 
 namespace itk
 {
@@ -45,7 +46,7 @@ WarpImageFilter<TInputImage,TOutputImage,TDeformationField>
   m_OutputOrigin.Fill( 0.0 );
   m_OutputDirection.SetIdentity();
   m_OutputSize.Fill(0);
-  m_EdgePaddingValue = NumericTraits<PixelType>::Zero;
+  PixelBuilder<PixelType>::Zero(m_EdgePaddingValue,1);
   m_OutputStartIndex.Fill(0);
   // Setup default interpolator
   typename DefaultInterpolatorType::Pointer interp =
diff --git a/Utilities/ITK/Code/Common/itkPixelBuilder.h b/Utilities/ITK/Code/Common/itkPixelBuilder.h
new file mode 100644
index 0000000000000000000000000000000000000000..7b88668321c348d1591a4ff28d343729da9cb0e2
--- /dev/null
+++ b/Utilities/ITK/Code/Common/itkPixelBuilder.h
@@ -0,0 +1,64 @@
+/*=========================================================================
+
+  Program:   Insight Segmentation & Registration Toolkit
+  Module:    $RCSfile: itkPixelBuilder.h,v $
+  Language:  C++
+  Date:      $Date: 2010-04-05 18:05:48 $
+  Version:   $Revision: 1.65 $
+
+  Copyright (c) Insight Software Consortium. All rights reserved.
+  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
+
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notices for more information.
+
+=========================================================================*/
+#ifndef __itkPixelBuilder_h
+#define __itkPixelBuilder_h
+
+#include "itkVariableLengthVector.h"
+
+namespace itk
+{
+
+/** \class PixelBuilder
+ *
+ * \ingroup DataRepresentation
+ */
+template <typename T>
+class PixelBuilder
+{
+public:
+  // Default implementation
+  static void Zero( T & pixel,unsigned int)
+  {
+    pixel = itk::NumericTraits<T>::Zero;
+  }
+
+  static void RefZero( T & pixel,const T &)
+  {
+    pixel = itk::NumericTraits<T>::Zero;
+  }
+};
+
+// Partial specialisation for VariableLengthVector
+template <typename T>
+class PixelBuilder< VariableLengthVector<T> >
+{
+public:
+  static void Zero(VariableLengthVector<T>& pixel, unsigned int nbComp)
+  {
+    pixel.SetSize(nbComp,true);
+    pixel.Fill(itk::NumericTraits<T>::Zero);
+  }
+
+  static void RefZero(VariableLengthVector<T>& pixel, const VariableLengthVector<T>& refPixel )
+  {
+    pixel.SetSize(refPixel.Size(),true);
+    pixel.Fill(itk::NumericTraits<T>::Zero);
+  }
+};
+} // End namespace itk
+
+#endif // __itkPixelBuilder_h
diff --git a/Utilities/ITK/Code/Review/itkOptLinearInterpolateImageFunction.txx b/Utilities/ITK/Code/Review/itkOptLinearInterpolateImageFunction.txx
index bbd492ce58e0b1755c5675e2e640f23e35b888d8..53089d470705448fd83832944f854f948520dd08 100755
--- a/Utilities/ITK/Code/Review/itkOptLinearInterpolateImageFunction.txx
+++ b/Utilities/ITK/Code/Review/itkOptLinearInterpolateImageFunction.txx
@@ -18,7 +18,7 @@
 #define __itkOptLinearInterpolateImageFunction_txx
 
 #include "itkOptLinearInterpolateImageFunction.h"
-
+#include "itkPixelBuilder.h"
 #include "vnl/vnl_math.h"
 
 namespace itk
@@ -89,7 +89,8 @@ LinearInterpolateImageFunction< TInputImage, TCoordRep >
    * neighbors. The weight for each neighbor is the fraction overlap
    * of the neighbor pixel with respect to a pixel centered on point.
    */
-  RealType value = NumericTraits<RealType>::Zero;
+  RealType value;
+  PixelBuilder<RealType>::Zero(value,this->GetInputImage()->GetNumberOfComponentsPerPixel());
 
   typedef typename NumericTraits<InputPixelType>::ScalarRealType ScalarRealType;
   ScalarRealType totalOverlap = NumericTraits<ScalarRealType>::Zero;