diff --git a/modules/gfx/src/surface.cc b/modules/gfx/src/surface.cc
index 6063f242c59911dbd38b19acce470587aea49f13..488375cf5b46ba29ee9e37c4c28f5368d750ad2c 100644
--- a/modules/gfx/src/surface.cc
+++ b/modules/gfx/src/surface.cc
@@ -371,4 +371,9 @@ void Surface::ReapplyColorOps()
   GfxObj::ReapplyColorOps();
 }
 
+ost::mol::SurfaceHandle Surface::GetHandle() const
+{
+  return this->sh_;
+}
+
 }} // ns
diff --git a/modules/gfx/src/surface.hh b/modules/gfx/src/surface.hh
index bb1f4492b03fcb1723f7e575079d405330a494a1..740ae787fcb4c5f0550201ae36856c9d2ee07f4e 100644
--- a/modules/gfx/src/surface.hh
+++ b/modules/gfx/src/surface.hh
@@ -58,6 +58,8 @@ public:
   virtual void CustomRenderPov(PovState& pov);
   virtual geom::AlignedCuboid GetBoundingBox() const;
 
+  mol::SurfaceHandle GetHandle() const;
+
   void Rebuild();
   void Replace(const mol::SurfaceHandle& sh);