diff --git a/Code/Seg/BlurredSegment/bsdetector.cpp b/Code/Seg/BlurredSegment/bsdetector.cpp
index 7b237096317460849fa43b2817c7a9ec588c42ca..4b3ea6b65e49b1ec401a04b9d2348073bcf0b9de 100755
--- a/Code/Seg/BlurredSegment/bsdetector.cpp
+++ b/Code/Seg/BlurredSegment/bsdetector.cpp
@@ -1,7 +1,7 @@
 #include "bsdetector.h"
 
 
-
+const string BSDetector::VERSION = "0.1";
 const int BSDetector::STEP_FINAL = 0;
 const int BSDetector::STEP_INITIAL = 1;
 const int BSDetector::STEP_PRELIM = 2;
@@ -748,3 +748,9 @@ void BSDetector::switchPreliminary ()
     if (bst1->orthoScansOn ()) bst0->switchOrthoScans ();
   }
 }
+
+
+std::string BSDetector::version ()
+{
+  return BSDetector::VERSION;
+}
diff --git a/Code/Seg/BlurredSegment/bsdetector.h b/Code/Seg/BlurredSegment/bsdetector.h
index bbfecdb1860b64bf9ce07fb5dc66d030b963d4d4..2b4d16e4e911cfffec9ab142022f06639ce5a4e9 100755
--- a/Code/Seg/BlurredSegment/bsdetector.h
+++ b/Code/Seg/BlurredSegment/bsdetector.h
@@ -17,6 +17,9 @@ class BSDetector
 
 public:
 
+  /** Version number  **/
+  static const string VERSION;
+
   /** Identifier for the final detection step. */
   static const int STEP_FINAL;
   /** Identifier for the initial detection step. */
@@ -138,7 +141,16 @@ public:
    * @param step Detection step.
    */
   BlurredSegment *getBlurredSegment (int step = STEP_FINAL) const;
-    
+
+  
+  /**
+   *  \brief Returns the current version of the detector.
+   * @return the current version.
+   */
+  std::string version();
+
+
+  
   /**
    * \brief Returns the list of detected blurred segments at final step.
    */
@@ -588,6 +600,7 @@ public:
    * \brief Toggles the detector used (between IWCIA '09 and present).
    */
   inline void switchDetector () { oldp = ! oldp; }
+  
 
 
 private :
@@ -716,5 +729,6 @@ private :
    */
   void freeMultiSelection ();
 
+  
 };
 #endif
diff --git a/Code/Seg/BlurredSegment/bstracker.cpp b/Code/Seg/BlurredSegment/bstracker.cpp
index 798b49a2b680bea7ed840fe7be7c659b4de6bf9d..cd364ecbdb7d12aa185768b9be36dfc760fd31b7 100755
--- a/Code/Seg/BlurredSegment/bstracker.cpp
+++ b/Code/Seg/BlurredSegment/bstracker.cpp
@@ -449,3 +449,5 @@ void BSTracker::switchScanExtent ()
   maxScan = (maxScan == gMap->getHeightWidthMax () ?
              DEFAULT_MAX_SCAN : gMap->getHeightWidthMax ());
 }
+
+
diff --git a/Code/Seg/IPOLdemo/mainIPOL.cpp b/Code/Seg/IPOLdemo/mainIPOL.cpp
index ffc3360fd8b5965121854f656158ae4171b53f83..8e7c2d8436947d6e43332f58f08453953e5a620d 100755
--- a/Code/Seg/IPOLdemo/mainIPOL.cpp
+++ b/Code/Seg/IPOLdemo/mainIPOL.cpp
@@ -19,13 +19,24 @@ void usage(std::string str)
 
 int main (int argc, char *argv[])
 {
+  for (int i = 1; i < argc; i++)
+  {
+    if (string(argv[i]) == "--version")
+    {
+       BSDetector detector;
+       std::cout << detector.version()<< std::endl;
+       return 0;
+    }
+  }
+
   if (argc < 4)
   {
     usage(argv[0]);
     exit(EXIT_FAILURE);
   }
 
-  
+      
+    
   // getting parameters:
   // - input image file
   string input_filename = argv[1];