diff --git a/modules/gui/pymod/export_overlay.cc b/modules/gui/pymod/export_overlay.cc
index d5293ddd01be9df97d9afc52ec3fb0aa4a9c0f45..4a19bceeb30e06a5e9e0737b64b53c0210dc7fd1 100644
--- a/modules/gui/pymod/export_overlay.cc
+++ b/modules/gui/pymod/export_overlay.cc
@@ -118,8 +118,8 @@ void export_overlay()
     .def("ClearMask",&MaskOverlay::ClearMask)
     .def("GetShift",&MaskOverlay::GetShift)
     .def("ClearShift",&MaskOverlay::ClearShift)
-   // .def("SetShift",&MaskOverlay::SetShift)
-   // .def("ApplyShiftToMask",&MaskOverlay::ApplyShiftToMask)
+    .def("SetShift",&MaskOverlay::SetShift)
+    .def("ApplyShiftToMask",&MaskOverlay::ApplyShiftToMask)
     ;
 
 /*  class_<Gauss2DOverlay,bases<Overlay>,boost::noncopyable>("Gauss2DOverlay",init<const alg::ParamsGauss2D&>())
diff --git a/modules/gui/src/data_viewer/mask_overlay.cc b/modules/gui/src/data_viewer/mask_overlay.cc
index a10082a3408b0988c2c38bda0230b6440d7916ff..6e1ae09906d3574d1ac7ebd47498fd08f49be9bb 100644
--- a/modules/gui/src/data_viewer/mask_overlay.cc
+++ b/modules/gui/src/data_viewer/mask_overlay.cc
@@ -214,5 +214,19 @@ void MaskOverlay::ClearMask()
   add_mode_=false;
 }
 
+void MaskOverlay::SetShift(geom::Vec2 shift)
+{
+  shift_=shift;
+}
+
+void MaskOverlay::ApplyShiftToMask()
+{
+  for(std::vector<geom::Polygon2>::iterator it=polygons_.begin();it!=polygons_.end();++it){
+    (*it)=(*it)+shift_;
+  }
+  new_poly_=new_poly_+shift_;
+  shift_=geom::Vec2(0.0,0.0);
+}
+
 
 }}}  //ns
diff --git a/modules/gui/src/data_viewer/mask_overlay.hh b/modules/gui/src/data_viewer/mask_overlay.hh
index e274f315756060af5001d610e550b42f410a1e83..36feb893d9d0d71893568fab4273c96314636ca0 100644
--- a/modules/gui/src/data_viewer/mask_overlay.hh
+++ b/modules/gui/src/data_viewer/mask_overlay.hh
@@ -56,6 +56,8 @@ public:
   void ClearMask();
   void ClearShift(){shift_=geom::Vec2();}
   geom::Vec2 GetShift(){return shift_;}
+  void SetShift(geom::Vec2 shift);
+  void ApplyShiftToMask();
 
 protected:
   std::vector<geom::Polygon2> polygons_;
diff --git a/modules/img/base/pymod/export_mask.cc b/modules/img/base/pymod/export_mask.cc
index 6db4cf05e80dd066460fed2215a83c58444a0396..3385d8ffc69061639aa221442dc24f9d3da4d988 100644
--- a/modules/img/base/pymod/export_mask.cc
+++ b/modules/img/base/pymod/export_mask.cc
@@ -26,6 +26,7 @@
 using namespace boost::python;
 
 #include <ost/img/mask.hh>
+#include <ost/img/mask_info_convert.hh>
 
 namespace ost { namespace img {
 
@@ -100,5 +101,7 @@ void export_Mask()
   def("Mask",mask2);
   def("Mask",mask3);
   def("Mask",mask4);
+  def("InfoToMask",InfoToMask);
+  def("MaskToInfo",MaskToInfo);
 
 }
diff --git a/modules/img/base/src/CMakeLists.txt b/modules/img/base/src/CMakeLists.txt
index 0d0e7e47a5b42c6e028275471a66928d34d54c2c..97ea2ed0b32297cf7e5298ec975d221a956da806 100644
--- a/modules/img/base/src/CMakeLists.txt
+++ b/modules/img/base/src/CMakeLists.txt
@@ -29,6 +29,7 @@ extent_mask.cc
 spherical_mask.cc
 mask_op.cc
 circle_mask.cc
+mask_info_convert.cc
 image_list.cc
 physical_units.cc
 progress.cc
@@ -86,6 +87,7 @@ spherical_mask.hh
 mask_op.hh
 mask.hh
 circle_mask.hh
+mask_info_convert.hh
 image_list.hh
 physical_units.hh
 progress.hh
@@ -105,4 +107,4 @@ module(NAME img SOURCES "${OST_IMG_SOURCES}"
        HEADERS ${OST_IMG_RASTER_IMAGE_HEADERS} IN_DIR raster_image
                 ${OST_IMG_IMAGE_STATE_HEADERS} IN_DIR image_state
                 ${OST_IMG_HEADERS}
-       DEPENDS_ON geom base)
+       DEPENDS_ON geom base info)