diff --git a/Testing/Utilities/siftfast.cpp b/Testing/Utilities/siftfast.cpp
index 3b2da1c717aa97b485e992aa770b7c85c2b81cba..c98a31316a0aa4fe333fbff44fd7793d7b832fc6 100644
--- a/Testing/Utilities/siftfast.cpp
+++ b/Testing/Utilities/siftfast.cpp
@@ -19,7 +19,7 @@
 
 #include <iostream>
 
-#ifdef __FreeBSD__
+#if defined (__FreeBSD__) || defined (__OpenBSD__)
 #  include <sys/time.h>
 #else
 #  include <sys/timeb.h>    // ftime(), struct timeb
@@ -48,7 +48,7 @@ inline u32 timeGetTime()
     _ftime(&t);
     millisec = (u32)(t.time*1000+t.millitm);
 #else
-#  ifdef __FreeBSD__
+#  if defined (__FreeBSD__) || defined (__OpenBSD__)
     // tv_sec is multiplied by 1000 to maintain same result as above
     // tv_usec is in micro-seconds, so multiply by 1000 to maintain same
     // result as above
diff --git a/Utilities/ITK/Code/Common/itkMemoryUsageObserver.cxx b/Utilities/ITK/Code/Common/itkMemoryUsageObserver.cxx
index e4ef66a05fb5a2532f2bce58582b9f17b78d2161..5219e0e5f4ade2cced27bab062bf6309f96a1f6c 100644
--- a/Utilities/ITK/Code/Common/itkMemoryUsageObserver.cxx
+++ b/Utilities/ITK/Code/Common/itkMemoryUsageObserver.cxx
@@ -42,11 +42,15 @@
 
 #if !defined(WIN32) && !defined(_WIN32)
   #include <sys/resource.h>     // getrusage()
-  #if !defined(__APPLE__) && !defined(__SUNPRO_CC) && !defined (__sun__) && !defined(__FreeBSD__)
+  #if !defined(__APPLE__) && !defined(__SUNPRO_CC) && !defined (__sun__) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
     #include <malloc.h>           // mallinfo()
   #endif // !defined(__APPLE__) && !defined(__SUNPRO_CC) && !defined (__sun__)
 #endif // !defined(WIN32) && !defined(_WIN32)
 
+#if defined(__OpenBSD__)
+#include <stdlib.h>
+#endif
+
 namespace itk
 {
 
@@ -385,7 +389,7 @@ SunSolarisMemoryUsageObserver::GetMemoryUsage()
 }
 #endif //defined(__SUNPRO_CC) || defined (__sun__)
 
-#if !defined(WIN32) && !defined(_WIN32) 
+#if !defined(WIN32) && !defined(_WIN32) || defined(__OpenBSD__)
 
 /**         ----         SysResource Memory Usage Observer       ----       */ 
 
@@ -408,7 +412,7 @@ SysResourceMemoryUsageObserver::GetMemoryUsage()
   return 0;
 }
 
-#if !defined(__APPLE__) && !defined(__SUNPRO_CC) && !defined (__sun__) && !defined(__FreeBSD__)
+#if !defined(__APPLE__) && !defined(__SUNPRO_CC) && !defined (__sun__) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
 
 /**         ----         Mallinfo Memory Usage Observer       ----       */ 
 
@@ -426,7 +430,7 @@ MallinfoMemoryUsageObserver::GetMemoryUsage()
   return mem;
 }
 
-#endif //  !defined(__APPLE__) && !defined(__SUNPRO_CC) && !defined (__sun__) && !defined(__FreeBSD__)
+#endif //  !defined(__APPLE__) && !defined(__SUNPRO_CC) && !defined (__sun__) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
 
 #endif // Unix and Mac Platforms !defined(WIN32) && !defined(_WIN32) 
 
diff --git a/Utilities/ITK/Code/Common/itkMemoryUsageObserver.h b/Utilities/ITK/Code/Common/itkMemoryUsageObserver.h
index 7a91d7ab447fc4c2878b9f9a4073a9ee20fe8e02..e50081cffae897dc493d609e51f2a52ba9ea898e 100644
--- a/Utilities/ITK/Code/Common/itkMemoryUsageObserver.h
+++ b/Utilities/ITK/Code/Common/itkMemoryUsageObserver.h
@@ -116,7 +116,7 @@ public:
   virtual ~SysResourceMemoryUsageObserver();
   virtual MemoryLoadType GetMemoryUsage();
 };
-#if !defined(__APPLE__) && !defined(__SUNPRO_CC) && !defined (__sun__) && !defined(__FreeBSD__)
+#if !defined(__APPLE__) && !defined(__SUNPRO_CC) && !defined (__sun__) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
 /** \class MallinfoMemoryUsageObserver
  * \brief The MallinfoMemoryUsageObserver
  */
@@ -146,7 +146,7 @@ class ITKCommon_EXPORT MemoryUsageObserver:
   public SunSolarisMemoryUsageObserver
 #elif defined(__APPLE__) && MAC_OS_X_VERSION >= MAC_OS_X_VERSION_10_2
   public MacOSXMemoryUsageObserver
-#elif defined(__APPLE__) || defined(__FreeBSD__)
+#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__)
   public SysResourceMemoryUsageObserver
 #else
   public MallinfoMemoryUsageObserver
diff --git a/Utilities/ITK/Utilities/vxl/core/vnl/vnl_math.cxx b/Utilities/ITK/Utilities/vxl/core/vnl/vnl_math.cxx
index cc237e542193f3e2265cc6e052c60f48d5639edf..43e83fbb02f571ad1a71ebb9c7b87e8f48514fce 100644
--- a/Utilities/ITK/Utilities/vxl/core/vnl/vnl_math.cxx
+++ b/Utilities/ITK/Utilities/vxl/core/vnl/vnl_math.cxx
@@ -223,18 +223,18 @@ bool vnl_math_isfinite(long double x)
 
 #if defined(VCL_BORLAND)
 //: Return true if x is inf
-bool vnl_math_isinf(float x) { return !_finite(x) && !_isnan(x); }
+bool vnl_math_isinf(float x) { return !_finite(x) && !vnl_math_isnan(x); }
 //: Return true if x is inf
-bool vnl_math_isinf(double x) { return !_finite(x) && !_isnan(x); }
+bool vnl_math_isinf(double x) { return !_finite(x) && !vnl_math_isnan(x); }
 //: Return true if x is inf
-bool vnl_math_isinf(long double x) { return !_finitel(x) && !_isnanl(x); }
+bool vnl_math_isinf(long double x) { return !_finitel(x) && !vnl_math_isnan(x); }
 #elif !defined(VNL_HAS_NO_FINITE)
 //: Return true if x is inf
-bool vnl_math_isinf(float x) { return !finitef(x) && !isnan(x); }
+bool vnl_math_isinf(float x) { return !finitef(x) && !vnl_math_isnan(x); }
 //: Return true if x is inf
-bool vnl_math_isinf(double x) { return !finite(x) && !isnan(x); }
+bool vnl_math_isinf(double x) { return !finite(x) && !vnl_math_isnan(x); }
 //: Return true if x is inf
-bool vnl_math_isinf(long double x) { return !finitel(x) && !isnan(x); }
+bool vnl_math_isinf(long double x) { return !finitel(x) && !vnl_math_isnan(x); }
 #else
 // Assume IEEE floating point number representation
 bool vnl_math_isinf(float x) {return(bMe(&x,0x7f800000L,sz_f)&&!bMp(&x,0x007fffffL,sz_f))||bMp(&x,0x7fffffffL,sz_f)==0x7f7fffffL;}
diff --git a/Utilities/ITK/Utilities/vxl/core/vnl/vnl_matlab_header.h b/Utilities/ITK/Utilities/vxl/core/vnl/vnl_matlab_header.h
index 9e374ee06e345bd6038e1776bc6293a1fc43c732..1a0eaf156a828b82a198c17e63ed330a1ecafe10 100644
--- a/Utilities/ITK/Utilities/vxl/core/vnl/vnl_matlab_header.h
+++ b/Utilities/ITK/Utilities/vxl/core/vnl/vnl_matlab_header.h
@@ -9,6 +9,9 @@
 //  \brief MATLAB header structure
 //  \author fsm
 
+#undef swap32
+#undef swap64
+
 #include <vxl_config.h>
 
 struct vnl_matlab_header
diff --git a/Utilities/otbossim/src/ossim/base/ossimDate.cpp b/Utilities/otbossim/src/ossim/base/ossimDate.cpp
index 0b223311271aa7bb65eab4e7192ece2b7ca6c96e..a544de96e1d33a380e916d30f369a301fa74170b 100644
--- a/Utilities/otbossim/src/ossim/base/ossimDate.cpp
+++ b/Utilities/otbossim/src/ossim/base/ossimDate.cpp
@@ -629,7 +629,7 @@ ossimLocalTm ossimLocalTm::convertToGmt()const
    _tzset();
 #endif
 
-#if ( defined(__APPLE__) || defined(__FreeBSD__) )
+#if ( defined(__APPLE__) || defined(__FreeBSD__)  || defined(__OpenBSD__) )
    gmt.tm_sec -= tm_gmtoff; // Seconds east of UTC
 #else
    gmt.tm_sec += timezone; // Seconds west of UTC
diff --git a/Utilities/otbossim/src/ossim/vpfutil/vpfcntnt.c b/Utilities/otbossim/src/ossim/vpfutil/vpfcntnt.c
index 1081dd1bef6084129ed2080fdcc3c628d76d6cc0..9891359be6f45fd3d00688372b91e88d36430d5a 100644
--- a/Utilities/otbossim/src/ossim/vpfutil/vpfcntnt.c
+++ b/Utilities/otbossim/src/ossim/vpfutil/vpfcntnt.c
@@ -22,7 +22,7 @@
  *    None
  *E
  **************************************************************************/
-#if defined(__CYGWIN__) || defined(__APPLE__)|| defined(_WIN32) || defined(__FreeBSD__)
+#if defined(__CYGWIN__) || defined(__APPLE__)|| defined(_WIN32) || defined(__FreeBSD__) || defined(__OpenBSD__)
 #  include "ossim/vpfutil/values.h"
 #else
 #  include <values.h>