diff --git a/src/examples/mvbluefox3_test.cpp b/src/examples/mvbluefox3_test.cpp
index a5f93b5d370520815a6932618ade4f9fd0ec811f..868d1102e46ba437a248302f6030999c6336e95a 100644
--- a/src/examples/mvbluefox3_test.cpp
+++ b/src/examples/mvbluefox3_test.cpp
@@ -1,5 +1,6 @@
 #include "mvbluefox3.h"
 #include <boost/timer.hpp>
+#include <unistd.h>
 
 #define WINDOW_NAME "mvBlueFOX3 TEST"
 
@@ -35,7 +36,7 @@ t.restart();
       cam_ptr->GetImage(image);
       cv::imshow( WINDOW_NAME, image );
       if(cv::waitKey(30) >= 0) break;
-std::cout << '\r' << "fps:" << 1.0/t.elapsed() << std::flush;
+// std::cout << '\r' << "fps:" << 1.0/t.elapsed() << std::flush;
     }
 std::cout << std::endl;
 
diff --git a/src/mvbluefox3.cpp b/src/mvbluefox3.cpp
index e9d58123b26009ac5b6887fcc4fe1406944e4d6f..a3a3af71d7c3ef954afcd8b71b10b2966716a4a1 100644
--- a/src/mvbluefox3.cpp
+++ b/src/mvbluefox3.cpp
@@ -4,9 +4,6 @@
 #include <iostream>
 #include <sstream>
 
-// TODO: Color twist filter (ImageProcessing/ColorTwist) with setSaturation().
-// TODO: Trigger: triggerMode and triggerSource (Acquisition Control).
-
 namespace CMvbluefox3 {
 
 CMvbluefox3::CMvbluefox3(const std::string &serial)
@@ -181,6 +178,7 @@ void CMvbluefox3::GetImage(char **image)
 
   // DEBUG
   // std::cout << this->stats_->framesPerSecond.read() << std::endl;
+  std::cout << this->ac_ctrl_->mvResultingFrameRate.read() << std::endl;
 }
 
 #ifdef HAVE_OPENCV_H
@@ -246,19 +244,6 @@ int CMvbluefox3::ReqExposeUs(void)
   return this->request_->infoExposeTime_us.read();
 }
 
-int CMvbluefox3::GetTimeoutMS(void)
-{ 
-  int val;
-  ReadProperty(this->bf_sets_->cameraSetting.imageRequestTimeout_ms,val);
-  return val;
-}
-
-void CMvbluefox3::SetTimeoutMS(int timeout_ms) 
-{ 
-  WriteProperty(this->bf_sets_->cameraSetting.imageRequestTimeout_ms,timeout_ms); 
-  this->timeout_ms_ = timeout_ms;
-}
-
 void CMvbluefox3::Configure(CParams &params, bool ini) 
 {
   // Clear request queue
@@ -280,7 +265,7 @@ void CMvbluefox3::Configure(CParams &params, bool ini)
   if (ini || this->params_.mirror != params.mirror)
     SetImgMirror(params.mirror);
 
-  // Area of Intreset
+  // // Area of Intreset
   if (ini || this->params_.aoi_width != params.aoi_width || this->params_.aoi_height != params.aoi_height || this->params_.aoi_start_x != params.aoi_start_x || this->params_.aoi_start_y != params.aoi_start_y)
     SetAoi(params.aoi_width, params.aoi_height, params.aoi_start_x, params_.aoi_start_y);
 
@@ -310,6 +295,10 @@ void CMvbluefox3::Configure(CParams &params, bool ini)
   if (ini || this->params_.dark_cfilter != params.dark_cfilter)
     SetDarkCFilter(params.dark_cfilter);
 
+  // Request time out
+  if (ini || this->params_.req_timeout != params.req_timeout)
+    SetTimeoutMS(params.req_timeout);
+
   // Pixel Clock
   if (ini || this->params_.pixel_clock != params.pixel_clock)
     SetPixelClock(params.pixel_clock);
@@ -330,10 +319,9 @@ void CMvbluefox3::Configure(CParams &params, bool ini)
   if (ini || this->params_.auto_blck_level != params.auto_blck_level || this->params_.blck_level != params.blck_level)
     SetBlackLevel(params.auto_blck_level, params.blck_level);
 
-
-  // WriteProperty(this->bf_sets_->imageProcessing.colorTwistInputCorrectionMatrixEnable,bFalse);
-  // WriteProperty(this->bf_sets_->imageProcessing.colorTwistEnable,bFalse);
-  // WriteProperty(this->bf_sets_->imageProcessing.colorTwistOutputCorrectionMatrixEnable,bFalse);
+  // Twsit color filter
+  if (ini || this->params_.twist_cfilter != params.twist_cfilter)
+    ColorTwistFilter(params.twist_cfilter);
 
   // Cache these parameters
   params_ = params;
@@ -579,6 +567,19 @@ void CMvbluefox3::SetDarkCFilter(int &dcfm)
   }  
 }
 
+void CMvbluefox3::SetTimeoutMS(int &timeout_ms) 
+{ 
+  WriteProperty(this->bf_sets_->cameraSetting.imageRequestTimeout_ms,timeout_ms); 
+  this->timeout_ms_ = timeout_ms;
+}
+
+int CMvbluefox3::GetTimeoutMS(void)
+{ 
+  int val;
+  ReadProperty(this->bf_sets_->cameraSetting.imageRequestTimeout_ms,val);
+  return val;
+}
+
 void CMvbluefox3::SetPixelClock(int &pclk_khz) 
 {
   if (this->dev_ctrl_->mvDeviceClockFrequency.isValid())
@@ -650,4 +651,41 @@ void CMvbluefox3::SetBlackLevel(bool &auto_blck_level, int &blck_level)
   }
 }
 
+void CMvbluefox3::ColorTwistFilter(bool &ct_enbl)
+{
+  // TODO: Color twist filter (ImageProcessing/ColorTwist) with setSaturation().
+
+  if (ct_enbl)
+  {
+    if (!this->bf_sets_->imageProcessing.colorTwistEnable.isValid())
+      throw CmvBlueFOX3Exception(_HERE_, "Color twist filter option is not available for this model."); 
+
+    try{     
+      WriteProperty(this->bf_sets_->imageProcessing.colorTwistEnable,bTrue);
+      this->bf_sets_->imageProcessing.setSaturation(1);
+      WriteProperty(this->bf_sets_->imageProcessing.colorTwistInputCorrectionMatrixEnable,bTrue);
+      WriteProperty(this->bf_sets_->imageProcessing.colorTwistOutputCorrectionMatrixEnable,bTrue);
+      WriteProperty(this->bf_sets_->imageProcessing.colorTwistInputCorrectionMatrixMode,cticmmDeviceSpecific);
+      WriteProperty(this->bf_sets_->imageProcessing.colorTwistOutputCorrectionMatrixMode,ctocmmXYZTosRGB_D50);
+      WriteProperty(this->bf_sets_->imageProcessing.colorTwistInputCorrectionMatrixEnable,bFalse);
+      WriteProperty(this->bf_sets_->imageProcessing.colorTwistOutputCorrectionMatrixEnable,bFalse);
+    }catch (CmvBlueFOX3Exception& e) {
+      throw CmvBlueFOX3Exception(_HERE_, "Unable to set color twist filter: " + e.what() );  
+    }  
+  }  
+  else
+  {
+    if (this->bf_sets_->imageProcessing.colorTwistEnable.isValid())
+    {
+      try{     
+        WriteProperty(this->bf_sets_->imageProcessing.colorTwistEnable,bFalse);
+        WriteProperty(this->bf_sets_->imageProcessing.colorTwistInputCorrectionMatrixEnable,bFalse);
+        WriteProperty(this->bf_sets_->imageProcessing.colorTwistOutputCorrectionMatrixEnable,bFalse);
+      }catch (CmvBlueFOX3Exception& e) {
+        throw CmvBlueFOX3Exception(_HERE_, "Unable to set color twist filter: " + e.what() );  
+      }        
+    }
+  }
+}
+
 } // End of CMvbluefox3 namespace
\ No newline at end of file
diff --git a/src/mvbluefox3.h b/src/mvbluefox3.h
index 28de1eada3512630240c7a3b716cf9c13961afc1..df2bb8c4bcdb740168c1bc61e0cd66c96837bf0a 100644
--- a/src/mvbluefox3.h
+++ b/src/mvbluefox3.h
@@ -48,16 +48,17 @@ private:
     frame_rate  = 100000;
     frate_limit_mode = 0;
     pixel_clock = 66000;
+    req_timeout = 2000;
 
     auto_ctrl_enbl = false;
     auto_ctrl_speed = 1;
     auto_expose = true;
-    auto_expose_upperlimit = 200000;
+    auto_expose_upperlimit = 32759;
     auto_expose_des_grey_val = 50;
     expose_us = 10000;
     auto_gain = false;
     gain_db = 0;
-    gamma = true;    
+    gamma = false;    
 
     // Image processing
     whiteblnce_auto_enbl = true;
@@ -67,6 +68,7 @@ private:
     blck_level = 0;
     hdr_enbl = false;
     dark_cfilter = 0;
+    twist_cfilter = false;
   }
 
 public:
@@ -89,6 +91,7 @@ public:
   int frame_rate;               // Frame rate.
   int frate_limit_mode;         // Calculation of the maximum frame rate.    
   int pixel_clock;              // Pixel_clock.
+  int req_timeout;              // request timeout [ms].
 
   bool auto_ctrl_enbl;          // Auto controller mode (enable).
   int auto_ctrl_speed;          // Speed of auto controller mode.
@@ -107,6 +110,7 @@ public:
   int blck_level;               // Black level (if auto_blck_level = false).
   bool hdr_enbl;                // High dynamic range (enable).
   int dark_cfilter;             // Dark current filter.
+  bool twist_cfilter;           // Color twist filter.
 
   /**
    * \brief Class constructor
@@ -202,6 +206,20 @@ class CMvbluefox3
      */
     void GetImageReqFormat(mvIMPACT::acquire::Request *request);
 
+    /**
+     * \brief Request single image
+     *
+     *  Sends a single request to the default request queue of the device.
+     */
+    void RequestSingle(void);
+
+    /**
+     * \brief Request multiple images
+     *
+     *  Sends multiple (n) requests to the default request queue of the device.
+     */
+    void RequestMultiple(int n);
+
     /**
      * \brief Pixel clock to frame rate
      *
@@ -318,6 +336,20 @@ class CMvbluefox3
      */ 
     void SetPixelClock(int &pclk_khz); 
 
+    /**
+     * \brief Set timeout [ms]
+     *
+     *  Sets the timeout for the frame request operation.
+     */
+    void SetTimeoutMS(int &timeout_ms);
+
+    /**
+     * \brief Get timeout [ms]
+     *
+     *  Returns the timeout set in the frame request operation.
+     */
+    int GetTimeoutMS(void);
+
     /**
      * \brief Set Gamma.
      *
@@ -332,6 +364,13 @@ class CMvbluefox3
      */  
     void SetBlackLevel(bool &auto_blck_level, int &blck_level);
 
+    /**
+     * \brief Color twsit filter.
+     *
+     *  Color twsit filter.
+     */ 
+    void ColorTwistFilter(bool &ct_enbl);
+
   public:
 
     /**
@@ -362,20 +401,6 @@ class CMvbluefox3
      */       
     std::string GetSerial(void); 
     
-    /**
-     * \brief Request single image
-     *
-     *  Sends a single request to the default request queue of the device.
-     */
-    void RequestSingle(void);
-
-    /**
-     * \brief Request multiple images
-     *
-     *  Sends multiple (n) requests to the default request queue of the device.
-     */
-    void RequestMultiple(int n);
-
     /**
      * \brief Get single image
      *
@@ -400,21 +425,6 @@ class CMvbluefox3
      *  Configure main camera parameters.
      */
     void Configure(CParams &params, bool ini = false); 
-
-    /**
-     * \brief Get timeout [ms]
-     *
-     *  Returns the timeout set in the frame request operation.
-     */
-    int GetTimeoutMS(void);
-
-    /**
-     * \brief Set timeout [ms]
-     *
-     *  Sets the timeout for the frame request operation.
-     */
-    void SetTimeoutMS(int timeout_ms);
-
 };
 
 } // End of CMvbluefox3 namespace