diff --git a/src/slic3r/GUI/GLToolbar.cpp b/src/slic3r/GUI/GLToolbar.cpp
index ec203541e..e094e1105 100644
--- a/src/slic3r/GUI/GLToolbar.cpp
+++ b/src/slic3r/GUI/GLToolbar.cpp
@@ -149,6 +149,14 @@ GLToolbar::GLToolbar(GLCanvas3D& parent)
 {
 }
 
+GLToolbar::~GLToolbar()
+{
+    for (GLToolbarItem* item : m_items)
+    {
+        delete item;
+    }
+}
+
 bool GLToolbar::init(const std::string& icons_texture_filename, unsigned int items_icon_size, unsigned int items_icon_border_size, unsigned int items_icon_gap_size)
 {
     std::string path = resources_dir() + "/icons/";
diff --git a/src/slic3r/GUI/GLToolbar.hpp b/src/slic3r/GUI/GLToolbar.hpp
index 7c0f5bf84..216171753 100644
--- a/src/slic3r/GUI/GLToolbar.hpp
+++ b/src/slic3r/GUI/GLToolbar.hpp
@@ -141,6 +141,7 @@ private:
 
 public:
     explicit GLToolbar(GLCanvas3D& parent);
+    ~GLToolbar();
 
     bool init(const std::string& icons_texture_filename, unsigned int items_icon_size, unsigned int items_icon_border_size, unsigned int items_icon_gap_size);