diff --git a/geometry/glow-extras/geometry/Cube.hh b/geometry/glow-extras/geometry/Cube.hh
index 6ef1c41e955b2098dc885ae81703cb42c739585a..806c4d3f3cff24d3153b35a8251e4355aede8391 100644
--- a/geometry/glow-extras/geometry/Cube.hh
+++ b/geometry/glow-extras/geometry/Cube.hh
@@ -1,15 +1,15 @@
 #pragma once
 
+#include <glm/common.hpp>
+#include <glm/geometric.hpp>
 #include <glm/vec2.hpp>
 #include <glm/vec3.hpp>
-#include <glm/geometric.hpp>
-#include <glm/common.hpp>
 
 #include <glow/common/shared.hh>
 
-#include <glow/objects/VertexArray.hh>
 #include <glow/objects/ArrayBuffer.hh>
 #include <glow/objects/ElementArrayBuffer.hh>
+#include <glow/objects/VertexArray.hh>
 
 namespace glow
 {
@@ -107,17 +107,17 @@ public:
                 auto baseIndex = vi;
 
                 vertices[vi++] = gen(mix(minCoord, maxCoord, (mid - left - top) * .5f + .5f), n, left, {0, 0});
-                vertices[vi++] = gen(mix(minCoord, maxCoord, (mid - left + top) * .5f + .5f), n, left, {0, 1});
                 vertices[vi++] = gen(mix(minCoord, maxCoord, (mid + left - top) * .5f + .5f), n, left, {1, 0});
                 vertices[vi++] = gen(mix(minCoord, maxCoord, (mid + left + top) * .5f + .5f), n, left, {1, 1});
+                vertices[vi++] = gen(mix(minCoord, maxCoord, (mid - left + top) * .5f + .5f), n, left, {0, 1});
 
                 indices[ii++] = baseIndex + 0;
+                indices[ii++] = baseIndex + 3;
                 indices[ii++] = baseIndex + 1;
-                indices[ii++] = baseIndex + 2;
 
-                indices[ii++] = baseIndex + 1;
                 indices[ii++] = baseIndex + 3;
                 indices[ii++] = baseIndex + 2;
+                indices[ii++] = baseIndex + 1;
             }
         }
 
diff --git a/glfw/glow-extras/glfw/GlfwApp.cc b/glfw/glow-extras/glfw/GlfwApp.cc
index 64bc4420e453b7c9c2240a49165590c0bd53f001..bc61057f4869e9d890b60730da69a5b302787595 100644
--- a/glfw/glow-extras/glfw/GlfwApp.cc
+++ b/glfw/glow-extras/glfw/GlfwApp.cc
@@ -635,3 +635,8 @@ int GlfwApp::run(int argc, char *argv[])
 
     return 0;
 }
+
+GlfwApp::~GlfwApp()
+{
+	// empty
+}
diff --git a/glfw/glow-extras/glfw/GlfwApp.hh b/glfw/glow-extras/glfw/GlfwApp.hh
index b1e1a7c9027466e0aa68536f5f9cc662ca763d99..4ad6313556b1ec2488096eebb88c7eb8eeb70315 100644
--- a/glfw/glow-extras/glfw/GlfwApp.hh
+++ b/glfw/glow-extras/glfw/GlfwApp.hh
@@ -246,6 +246,9 @@ protected:
 public:
     /// Initializes GLFW and GLOW, and runs until window is closed
     int run(int argc, char* argv[]);
+
+public:
+	virtual ~GlfwApp(); // virtual dtor
 };
 }
 }
diff --git a/material/glow-extras/material/IBL.cc b/material/glow-extras/material/IBL.cc
index d0cf469be1d953790ab421d8fd9ce8e13945df16..5da8af0b1fb8b1fe9ec0d068ca1fb0e5c6fbbdef 100644
--- a/material/glow-extras/material/IBL.cc
+++ b/material/glow-extras/material/IBL.cc
@@ -61,6 +61,9 @@ glow::SharedTextureCubeMap glow::material::IBL::createEnvMapGGX(const glow::Shar
         }
     }
 
+	// we manually calculated all mipmaps
+	tex->setMipmapsGenerated(true);
+
     return tex;
 }