diff --git a/src/winextras/qwintaskbarbutton.cpp b/src/winextras/qwintaskbarbutton.cpp
index 86c6e0ee0739faef7f8a18321fac025b0a729d92..192987b604f49c02dd7896356a013ef3642a1b15 100644
--- a/src/winextras/qwintaskbarbutton.cpp
+++ b/src/winextras/qwintaskbarbutton.cpp
@@ -88,8 +88,10 @@ QT_BEGIN_NAMESPACE
     Constructs a QWinTaskbarButton with the parent object \a parent.
  */
 QWinTaskbarButton::QWinTaskbarButton(QObject *parent) :
-    QObject(parent), d_ptr(new QWinTaskbarButtonPrivate(this))
+    QObject(parent), d_ptr(new QWinTaskbarButtonPrivate)
 {
+    Q_D(QWinTaskbarButton);
+    d->q_ptr = this;
     QWinEventFilter::setup();
 }
 
@@ -294,9 +296,9 @@ void QWinTaskbarButton::resetProgress()
 
 
 
-QWinTaskbarButtonPrivate::QWinTaskbarButtonPrivate(QWinTaskbarButton *parent) :
+QWinTaskbarButtonPrivate::QWinTaskbarButtonPrivate() :
     progressMinimum(0), progressMaximum(100), progressValue(0), progressState(QWinTaskbarButton::NoProgressState),
-    updateNeeded(false), pTbList(0), window(0), q_ptr(parent)
+    updateNeeded(false), pTbList(0), window(0), q_ptr(0)
 {
     HRESULT hresult = CoCreateInstance(CLSID_TaskbarList, 0, CLSCTX_INPROC_SERVER, IID_ITaskbarList4, reinterpret_cast<void **>(&pTbList));
     if (FAILED(hresult)) {
diff --git a/src/winextras/qwintaskbarbutton.h b/src/winextras/qwintaskbarbutton.h
index 85efd3fc56cfb5bbfa1750e19535dff1898d7708..562e1f621af4ae3f626ba365b70d86d187796dd5 100644
--- a/src/winextras/qwintaskbarbutton.h
+++ b/src/winextras/qwintaskbarbutton.h
@@ -71,7 +71,7 @@ public:
 
     Q_ENUMS(ProgressState)
 
-    explicit QWinTaskbarButton(QObject *parent);
+    explicit QWinTaskbarButton(QObject *parent = 0);
     ~QWinTaskbarButton();
     void setWindow(QWindow *window);
 
diff --git a/src/winextras/qwintaskbarbutton_p.h b/src/winextras/qwintaskbarbutton_p.h
index 92caf9b10671cf9ac79a2ec1ad86901ffb60fcad..51dc6579cd261c2f8fad63bcce24955e677baf31 100644
--- a/src/winextras/qwintaskbarbutton_p.h
+++ b/src/winextras/qwintaskbarbutton_p.h
@@ -56,7 +56,7 @@ QT_BEGIN_NAMESPACE
 class QWinTaskbarButtonPrivate
 {
 public:
-    explicit QWinTaskbarButtonPrivate(QWinTaskbarButton *parent);
+    QWinTaskbarButtonPrivate();
     ~QWinTaskbarButtonPrivate();
 
     int progressMinimum;