diff --git a/modules/base/src/log.cc b/modules/base/src/log.cc
index 7e3c537980e856dab90333773b492d70b9eeab84..ec77c8525bcdf7d17fa82dd05a8f13acbe722e4c 100644
--- a/modules/base/src/log.cc
+++ b/modules/base/src/log.cc
@@ -18,6 +18,7 @@
 //------------------------------------------------------------------------------
 #include <iostream>
 
+
 #include <ost/log.hh>
 
 namespace ost {
diff --git a/modules/base/src/log.hh b/modules/base/src/log.hh
index 796de9dcb41b3eba2ae2df7270e1572fd08abefb..ac86280a2159f650f5c36ab326afa4bbd83cc21d 100644
--- a/modules/base/src/log.hh
+++ b/modules/base/src/log.hh
@@ -58,11 +58,11 @@ private:
   std::ostream null_;
 };
 
-#define PUSH_VERBOSITY(n) Logger::Instance().PushVerbosityLevel(n)
-#define POP_VERBOSITY(n) Logger::Instance().PopVerbosityLevel()
+#define PUSH_VERBOSITY(n) ::ost::Logger::Instance().PushVerbosityLevel(n)
+#define POP_VERBOSITY(n) ::ost::Logger::Instance().PopVerbosityLevel()
 
-#define LOG_ERROR(m) Logger::Instance()(Logger::QUIET) << m;
-#define LOGN_ERROR(m) Logger::Instance()(Logger::QUIET) << m << std::endl;
+#define LOG_ERROR(m) ::ost::Logger::Instance()(::ost::Logger::QUIET) << m;
+#define LOGN_ERROR(m) ::ost::Logger::Instance()(::ost::Logger::QUIET) << m << std::endl;
 
 #define LOG_MESSAGE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::NORMAL) {(::ost::Logger::Instance()(::ost::Logger::NORMAL)) << m ;}
 #define LOGN_MESSAGE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::NORMAL) {(::ost::Logger::Instance()(::ost::Logger::NORMAL)) << m << std::endl;}
@@ -70,8 +70,8 @@ private:
 #define LOG_VERBOSE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::VERBOSE) {(::ost::Logger::Instance()(::ost::Logger::VERBOSE)) << m ;}
 #define LOGN_VERBOSE(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::VERBOSE) {(::ost::Logger::Instance()(::ost::Logger::VERBOSE)) << m << std::endl;}
 
-#define LOG_DEBUG(m) if(Logger::Instance().GetLogLevel()>=::ost::Logger::DEBUG) {(::ost::Logger::Instance()(::ost::Logger::DEBUG)) << m ;}
-#define LOGN_DEBUG(m) if(Logger::Instance().GetLogLevel()>=::ost::Logger::DEBUG) {(::ost::Logger::Instance()(::ost::Logger::DEBUG)) << m << std::endl;}
+#define LOG_DEBUG(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::DEBUG) {(::ost::Logger::Instance()(::ost::Logger::DEBUG)) << m ;}
+#define LOGN_DEBUG(m) if(::ost::Logger::Instance().GetLogLevel()>=::ost::Logger::DEBUG) {(::ost::Logger::Instance()(::ost::Logger::DEBUG)) << m << std::endl;}
 
 #ifdef NDEBUG
 
diff --git a/modules/gui/pymod/CMakeLists.txt b/modules/gui/pymod/CMakeLists.txt
index d3cad752d59ff0696b638b6943e7f4ace59e3b22..c62fe901cc7a30482eb5b41da8aa60413efd1393 100644
--- a/modules/gui/pymod/CMakeLists.txt
+++ b/modules/gui/pymod/CMakeLists.txt
@@ -62,6 +62,7 @@ if (ENABLE_IMG)
   list(APPEND OST_GUI_PYMOD_SOURCES
   data_viewer_proxy.cc
   export_data_viewer.cc
+  export_overlay.cc
   )
 endif()
 
diff --git a/modules/gui/pymod/export_overlay.cc b/modules/gui/pymod/export_overlay.cc
new file mode 100644
index 0000000000000000000000000000000000000000..21019aa74ac545ed4dd06b4bb22cb2a5a3b35645
--- /dev/null
+++ b/modules/gui/pymod/export_overlay.cc
@@ -0,0 +1,127 @@
+//------------------------------------------------------------------------------
+// This file is part of the OpenStructure project <www.openstructure.org>
+//
+// Copyright (C) 2008-2010 by the OpenStructure authors
+// Copyright (C) 2003-2010 by the IPLT authors
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License as published by the Free
+// Software Foundation; either version 3.0 of the License, or (at your option)
+// any later version.
+// This library is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+// FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
+// details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this library; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//------------------------------------------------------------------------------
+
+
+/*
+  Author: Ansgar Philippsen
+*/
+
+#include <boost/python.hpp>
+#include <ost/gui/data_viewer/overlay.hh>
+#include <ost/gui/data_viewer/null_overlay.hh>
+#include <ost/gui/data_viewer/pointlist_overlay.hh>
+#include <ost/gui/data_viewer/draw_overlay.hh>
+#include <ost/gui/data_viewer/mask_overlay.hh>
+
+using namespace boost::python;
+using namespace ost;
+using namespace ost::img;
+using namespace ost::img::gui;
+namespace {
+
+void plo_add1(PointlistOverlay& plo, const Point& p)
+{
+  plo.Add(p);
+}
+
+
+void plo_add2(PointlistOverlay& plo, const PointList& p)
+{
+  plo.Add(p);
+}
+
+/*void plo_add3(PointlistOverlay& plo, const Point& p, double scale)
+{
+  plo.Add(p,scale);
+}
+
+void plo_add4(PointlistOverlay& plo, const PointList& p, double scale)
+{
+  plo.Add(p,scale);
+}
+*/
+QColor qcolor_from_pyobj(boost::python::object& obj)
+{
+return QColor(boost::python::extract<int>(obj.attr("red")()),
+              boost::python::extract<int>(obj.attr("green")()),
+              boost::python::extract<int>(obj.attr("blue")()));
+}
+
+/*void set_active_color(PointlistOverlayBase& plo,boost::python::object& obj)
+{
+  QColor color=qcolor_from_pyobj(obj);
+  plo.SetActiveColor(color);
+}
+void set_passive_color(PointlistOverlayBase& plo,boost::python::object& obj)
+{
+  QColor color=qcolor_from_pyobj(obj);
+  plo.SetPassiveColor(color);
+}*/
+
+}//ns
+
+void export_overlay()
+{
+  class_<Overlay, OverlayPtr, boost::noncopyable>("Overlay",no_init)
+    .def("GetName",&Overlay::GetName)
+    .def("SetName",&Overlay::SetName)
+    ;
+
+  class_<NullOverlay,bases<Overlay>,boost::noncopyable>("NullOverlay",init<>())
+    ;
+
+  class_<PointlistOverlayBase,bases<Overlay>,boost::noncopyable>("PointlistOverlayBase",init<const String&>())
+    .def("SetSymbolSize",&PointlistOverlayBase::SetSymbolSize)
+    .def("GetSymbolSize",&PointlistOverlayBase::GetSymbolSize)
+    .def("SetSymbolShape",&PointlistOverlayBase::SetSymbolShape)
+    .def("GetSymbolShape",&PointlistOverlayBase::GetSymbolShape)
+    .def("SetCrosshair",&PointlistOverlayBase::SetCrosshair)
+    .def("GetCrosshair",&PointlistOverlayBase::GetCrosshair)
+   // .def("SetActiveColor",set_active_color)
+  //  .def("SetPassiveColor",set_passive_color)
+    ;
+
+  class_<PointlistOverlay,bases<PointlistOverlayBase>,boost::noncopyable>("PointlistOverlay",init<optional<const String&> >())
+    .def(init<const PointList&,optional<const String&> >())
+    .def("Add",plo_add1)
+    .def("Add",plo_add2)
+ //   .def("Add",plo_add3)
+ //   .def("Add",plo_add4)
+    .def("Remove",&PointlistOverlay::Remove)
+    .def("Clear",&PointlistOverlay::Clear)
+    ;
+
+  class_<DrawOverlay,bases<Overlay>,boost::noncopyable>("DrawOverlay",init<ImageHandle>())
+    ;
+
+  class_<MaskOverlay,bases<Overlay>,boost::noncopyable>("MaskOverlay",init<>())
+    .def(init<const MaskPtr&>())
+    .def("SetMask",&MaskOverlay::SetMask)
+    .def("GetMask",&MaskOverlay::GetMask)
+    .def("ClearMask",&MaskOverlay::ClearMask)
+    .def("GetShift",&MaskOverlay::GetShift)
+    .def("ClearShift",&MaskOverlay::ClearShift)
+   // .def("SetShift",&MaskOverlay::SetShift)
+   // .def("ApplyShiftToMask",&MaskOverlay::ApplyShiftToMask)
+    ;
+
+/*  class_<Gauss2DOverlay,bases<Overlay>,boost::noncopyable>("Gauss2DOverlay",init<const alg::ParamsGauss2D&>())
+    ;*/
+}
diff --git a/modules/gui/pymod/wrap_gui.cc b/modules/gui/pymod/wrap_gui.cc
index 19bc5a37a46854985df382e86862f2782eedb931..4034dfe1cbead9baa952f1d6d2cacea11536191d 100644
--- a/modules/gui/pymod/wrap_gui.cc
+++ b/modules/gui/pymod/wrap_gui.cc
@@ -49,6 +49,7 @@ void export_Input();
 
 #ifdef OST_IMG_ENABLED
 void export_data_viewer();
+void export_overlay();
 #endif
 
 #include <boost/python/to_python_converter.hpp>
@@ -125,5 +126,6 @@ BOOST_PYTHON_MODULE(_gui)
 
   #if OST_IMG_ENABLED
   export_data_viewer();
+  export_overlay();
   #endif
 }