diff --git a/src/gui/kernel/qshapedpixmapdndwindow.cpp b/src/gui/kernel/qshapedpixmapdndwindow.cpp
index 55a8aae33c4a9d09592588286e4bc9b70f2585e0..af60b36647c59042996acc4a968e576716932f46 100644
--- a/src/gui/kernel/qshapedpixmapdndwindow.cpp
+++ b/src/gui/kernel/qshapedpixmapdndwindow.cpp
@@ -52,6 +52,12 @@ QShapedPixmapWindow::QShapedPixmapWindow()
     m_backingStore = new QBackingStore(this);
 }
 
+QShapedPixmapWindow::~QShapedPixmapWindow()
+{
+    delete m_backingStore;
+    m_backingStore = 0;
+}
+
 void QShapedPixmapWindow::render()
 {
     QRect rect(QPoint(), geometry().size());
diff --git a/src/gui/kernel/qshapedpixmapdndwindow_p.h b/src/gui/kernel/qshapedpixmapdndwindow_p.h
index b59305f055f1ff8e2e91552b90d1e5d15bb491a7..04198c83cb7a4d515ccf3472e382a398c93b24f1 100644
--- a/src/gui/kernel/qshapedpixmapdndwindow_p.h
+++ b/src/gui/kernel/qshapedpixmapdndwindow_p.h
@@ -56,6 +56,7 @@ class QShapedPixmapWindow : public QWindow
     Q_OBJECT
 public:
     QShapedPixmapWindow();
+    ~QShapedPixmapWindow();
 
     void render();