diff --git a/modules/gui/pymod/CMakeLists.txt b/modules/gui/pymod/CMakeLists.txt
index ab7094a8653f2647be35185cc5ae6e4d3f0cd59a..0f3b63b94fdec661fa1cb122c8754cb94a6b18ef 100644
--- a/modules/gui/pymod/CMakeLists.txt
+++ b/modules/gui/pymod/CMakeLists.txt
@@ -17,6 +17,7 @@ set(OST_GUI_PYMOD_SOURCES
   export_file_loader.cc
   export_file_viewer.cc
   export_widget.cc
+  export_gl_canvas.cc
 )
 set(OST_GUI_SCENE_PYMOD_MODULES
 __init__.py
diff --git a/modules/gui/pymod/export_gl_canvas.cc b/modules/gui/pymod/export_gl_canvas.cc
new file mode 100644
index 0000000000000000000000000000000000000000..306f5fd670cc91543abf55db1f600375e98f735e
--- /dev/null
+++ b/modules/gui/pymod/export_gl_canvas.cc
@@ -0,0 +1,42 @@
+//------------------------------------------------------------------------------
+// This file is part of the OpenStructure project <www.openstructure.org>
+//
+// Copyright (C) 2008-2011 by the OpenStructure 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
+//------------------------------------------------------------------------------
+#include <boost/python.hpp>
+
+#include <ost/gui/gl_canvas.hh>
+#include "sip_handler.hh"
+
+using namespace boost::python;
+using namespace ost;
+using namespace ost::gui;
+
+void WrapSetGLCanvasFormat(GLCanvas& canvas, object py_obj) {
+  QSurfaceFormat* f = get_cpp_qobject<QSurfaceFormat>(py_obj);
+  canvas.setFormat(*f);
+}
+
+void export_GLCanvas() {
+
+   class_<GLCanvas, boost::noncopyable>("GLCanvas", init<>())
+    .def("Show", &GLCanvas::show)
+    .def("SetFormat", &WrapSetGLCanvasFormat)
+    .def("SetDefaultFormat", &GLCanvas::SetDefaultFormat)
+    .def("GetQObject",&get_py_qobject<GLCanvas>)
+    .add_property("qobject", &get_py_qobject<GLCanvas>)
+  ;
+}
diff --git a/modules/gui/pymod/wrap_gui.cc b/modules/gui/pymod/wrap_gui.cc
index 6e4baae550ea669ab9e9ee79781f1b2c86d4ea12..b24863ca8b04e04d9b6125e77e4074fb988c57e2 100644
--- a/modules/gui/pymod/wrap_gui.cc
+++ b/modules/gui/pymod/wrap_gui.cc
@@ -41,6 +41,7 @@ void export_MenuBar();
 void export_FileLoader();
 void export_FileViewer();
 void export_Widget();
+void export_GLCanvas();
 
 #if OST_SPNAV_ENABLED
 void export_Input();
@@ -120,6 +121,7 @@ BOOST_PYTHON_MODULE(_ost_gui)
   export_FileLoader();
   export_FileViewer();
   export_Widget();
+  export_GLCanvas();
 
   #if OST_SPNAV_ENABLED
   export_Input();