diff --git a/graf3d/gl/inc/TGLUtil.h b/graf3d/gl/inc/TGLUtil.h
index 5f6943575c532834b015346dbf03748a0db6a33f..e56ddc1427a194c799feda6db1a6cadbb488b908 100644
--- a/graf3d/gl/inc/TGLUtil.h
+++ b/graf3d/gl/inc/TGLUtil.h
@@ -794,7 +794,8 @@ public:
    TGLColor(Int_t r, Int_t g, Int_t b, Int_t a=255);
    TGLColor(Float_t r, Float_t g, Float_t b, Float_t a=1);
    TGLColor(Color_t color_index, Char_t transparency=0);
-   virtual ~TGLColor();
+   TGLColor(const TGLColor& c);
+   virtual ~TGLColor() = default;
 
    TGLColor& operator=(const TGLColor& c);
 
diff --git a/graf3d/gl/src/TGLUtil.cxx b/graf3d/gl/src/TGLUtil.cxx
index b2e8c49ee0444565227344df9abf728cd7b4dfa4..f5b4c8d4cc5c5c185c1ca400e23088a3d3f090ba 100644
--- a/graf3d/gl/src/TGLUtil.cxx
+++ b/graf3d/gl/src/TGLUtil.cxx
@@ -1201,10 +1201,15 @@ TGLColor::TGLColor(Color_t color_index, Char_t transparency)
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-/// Destructor.
+/// copy constructor
 
-TGLColor::~TGLColor()
+TGLColor::TGLColor(const TGLColor& c)
 {
+   fRGBA[0] = c.fRGBA[0];
+   fRGBA[1] = c.fRGBA[1];
+   fRGBA[2] = c.fRGBA[2];
+   fRGBA[3] = c.fRGBA[3];
+   fIndex   = c.fIndex;
 }
 
 ////////////////////////////////////////////////////////////////////////////////