diff --git a/examples/winextras/musicplayer/musicplayer.cpp b/examples/winextras/musicplayer/musicplayer.cpp
index c44d387..7e8c958 100644
--- a/examples/winextras/musicplayer/musicplayer.cpp
+++ b/examples/winextras/musicplayer/musicplayer.cpp
@@ -68,6 +68,7 @@ MusicPlayer::MusicPlayer(QWidget *parent) : QWidget(parent),
 
 void MusicPlayer::openFile()
 {
+    debugJumpList();
     const QStringList musicPaths = QStandardPaths::standardLocations(QStandardPaths::MusicLocation);
     const QString filePath =
         QFileDialog::getOpenFileName(this, tr("Open File"),
@@ -307,11 +308,83 @@ void MusicPlayer::createShortcuts()
 }
 
 //! [4]
+//!
+//!
+//!
+static QIcon paintIcon(const QColor &c, int n)
+{
+    QPixmap pixmap(22, 22);
+    pixmap.fill(c);
+    QPainter p(&pixmap);
+    p.drawText(3, 20, QString::number(n));
+    return QIcon(pixmap);
+}
+
 void MusicPlayer::createJumpList()
 {
+
+    QStringList args = QCoreApplication::arguments();
+    if (args.contains("-n")) {
+        qDebug() <<"NJ";
+        return;
+    }
+
+    QScopedPointer<QWinJumpList> jumplist(new QWinJumpList);
+    static int n=0;
+    if (!args.contains("-j")) {
+        qDebug() << "### Setting up recent";
+        jumplist->recent()->setVisible(true);
+        jumplist->recent()->setTitle("RecentTT");
+
+        qDebug() << "### Setting up frequent";
+        jumplist->frequent()->setTitle("FreqTT");
+        qDebug() << "### >add to frequent";
+        jumplist->frequent()->addLink(paintIcon(Qt::yellow, n++),
+                                    "Test freq1",
+                                     QDir::toNativeSeparators(QCoreApplication::applicationFilePath()),
+                                     QStringList("FreqArg1"));
+        qDebug() << "### <add to frequent";
+        jumplist->frequent()->setVisible(true);
+        qDebug() << "### >add to frequent";
+        jumplist->frequent()->addLink(paintIcon(Qt::yellow, n++), "Test freq2",
+                                     QDir::toNativeSeparators(QCoreApplication::applicationFilePath()),
+                                     QStringList("FreqArg2"));
+        qDebug() << "### <add to frequent";
+        jumplist->frequent()->setVisible(true);
+
+        qDebug() << "### Setting up tasks";
+        jumplist->tasks()->setTitle("TasksTT");
+        qDebug() << "### >add to tasks";
+        jumplist->tasks()->addLink(paintIcon(Qt::cyan, n++), "Test task1",
+                                  QDir::toNativeSeparators(QCoreApplication::applicationFilePath()),
+                                  QStringList("TaskArg1"));
+        qDebug() << "### <add to tasks";
+        qDebug() << "### >add to tasks";
+        jumplist->tasks()->addLink(paintIcon(Qt::cyan, n++), "Test task2",
+                                  QDir::toNativeSeparators(QCoreApplication::applicationFilePath()),
+                                  QStringList("TaskArg2"));
+        qDebug() << "### <add to tasks";
+        jumplist->tasks()->setVisible(true);
+    }
+    if (args.contains("-c")) {
+        qDebug() << "Clear";
+        jumplist->clear();
+    }
+
+
+    qDebug() << __FUNCTION__ << '\n'  << jumplist.data();
+    if (args.contains("-d")) {
+        qDebug() << "Not deleting";
+        jumplist.take();
+    }
+}
+
+void MusicPlayer::debugJumpList()
+{
     QWinJumpList jumplist;
-    jumplist.recent()->setVisible(true);
+    qDebug() << __FUNCTION__ << '\n'  << &jumplist;
 }
+
 //! [4]
 
 //! [5]
diff --git a/examples/winextras/musicplayer/musicplayer.h b/examples/winextras/musicplayer/musicplayer.h
index aae8781..12bc9c8 100644
--- a/examples/winextras/musicplayer/musicplayer.h
+++ b/examples/winextras/musicplayer/musicplayer.h
@@ -91,6 +91,7 @@ private:
     void createJumpList();
     void createTaskbar();
     void createThumbnailToolBar();
+    void debugJumpList();
 
     QWinTaskbarButton* taskbarButton;
     QWinTaskbarProgress* taskbarProgress;
diff --git a/examples/winextras/musicplayer/musicplayer.pro b/examples/winextras/musicplayer/musicplayer.pro
index 73968cf..2d6ba17 100644
--- a/examples/winextras/musicplayer/musicplayer.pro
+++ b/examples/winextras/musicplayer/musicplayer.pro
@@ -2,7 +2,7 @@ TEMPLATE = app
 TARGET = musicplayer
 
 QT += widgets multimedia winextras
-
+CONFIG+=console
 HEADERS = \
     musicplayer.h \
     volumebutton.h
@@ -14,7 +14,7 @@ SOURCES = \
 
 RESOURCES += \
     musicplayer.qrc
-
+CONFIG+=console
 RC_ICONS = images/musicplayer.ico
 
 target.path = $$[QT_INSTALL_EXAMPLES]/winextras/musicplayer
diff --git a/src/winextras/qwinjumplist.cpp b/src/winextras/qwinjumplist.cpp
index cec305b..fcd173a 100644
--- a/src/winextras/qwinjumplist.cpp
+++ b/src/winextras/qwinjumplist.cpp
@@ -125,6 +125,7 @@ QString QWinJumpListPrivate::iconsDirPath()
 void QWinJumpListPrivate::invalidate()
 {
     Q_Q(QWinJumpList);
+    qDebug() << __FUNCTION__ << q << ">destlist=" << pDestList << "dirty=" << dirty;
     if (!pDestList)
         return;
 
@@ -132,10 +133,12 @@ void QWinJumpListPrivate::invalidate()
         dirty = true;
         QMetaObject::invokeMethod(q, "_q_rebuild", Qt::QueuedConnection);
     }
+    qDebug() << __FUNCTION__ << '<';
 }
 
 void QWinJumpListPrivate::_q_rebuild()
 {
+    qDebug() << __FUNCTION__ << '>';
     if (beginList()) {
         if (recent && recent->isVisible())
             appendKnownCategory(KDC_RECENT);
@@ -145,15 +148,19 @@ void QWinJumpListPrivate::_q_rebuild()
             if (category->isVisible())
                 appendCustomCategory(category);
         }
-        if (tasks && tasks->isVisible())
+        if (tasks && tasks->isVisible()) {
+            qDebug() << __FUNCTION__ << "tasks";
             appendTasks(tasks->items());
+        }
         commitList();
     }
+    qDebug() << __FUNCTION__ << '<';
     dirty = false;
 }
 
 void QWinJumpListPrivate::destroy()
 {
+    qDebug() << __FUNCTION__  << '>';
     delete recent;
     recent = 0;
     delete frequent;
@@ -163,10 +170,12 @@ void QWinJumpListPrivate::destroy()
     qDeleteAll(categories);
     categories.clear();
     invalidate();
+    qDebug() << __FUNCTION__ << '<';
 }
 
 bool QWinJumpListPrivate::beginList()
 {
+    qDebug() << __FUNCTION__ << identifier;
     HRESULT hresult = S_OK;
     if (!identifier.isEmpty()) {
         wchar_t *id = qt_qstringToNullTerminated(identifier);
@@ -179,6 +188,7 @@ bool QWinJumpListPrivate::beginList()
         hresult = pDestList->BeginList(&maxSlots, qIID_IUnknown, reinterpret_cast<void **>(&array));
         if (array)
             array->Release();
+        qDebug() << __FUNCTION__ << "maxSlots=" << maxSlots;
     }
     if (FAILED(hresult))
         QWinJumpListPrivate::warning("BeginList", hresult);
@@ -187,22 +197,27 @@ bool QWinJumpListPrivate::beginList()
 
 bool QWinJumpListPrivate::commitList()
 {
+    qDebug() << __FUNCTION__  << '>';
     HRESULT hresult = pDestList->CommitList();
     if (FAILED(hresult))
         QWinJumpListPrivate::warning("CommitList", hresult);
+    qDebug() << __FUNCTION__ << "destlist=" << pDestList<< '<';
     return SUCCEEDED(hresult);
 }
 
 void QWinJumpListPrivate::appendKnownCategory(KNOWNDESTCATEGORY category)
 {
+    qDebug() << __FUNCTION__ << '>' << category;
     HRESULT hresult = pDestList->AppendKnownCategory(category);
     if (FAILED(hresult))
         QWinJumpListPrivate::warning("AppendKnownCategory", hresult);
+    qDebug() << __FUNCTION__ << '<';
 }
 
 void QWinJumpListPrivate::appendCustomCategory(QWinJumpListCategory *category)
 {
     IObjectCollection *collection = toComCollection(category->items());
+    qDebug() << __FUNCTION__ << collection << category->title();
     if (collection) {
         wchar_t *title = qt_qstringToNullTerminated(category->title());
         HRESULT hresult = pDestList->AppendCategory(title, collection);
@@ -216,16 +231,23 @@ void QWinJumpListPrivate::appendCustomCategory(QWinJumpListCategory *category)
 void QWinJumpListPrivate::appendTasks(const QList<QWinJumpListItem *> &items)
 {
     IObjectCollection *collection = toComCollection(items);
+
+    qDebug() << __FUNCTION__ << '>' << collection << "destList=" << pDestList ;
     if (collection) {
+        UINT ct;
+        collection->GetCount(&ct);
         HRESULT hresult = pDestList->AddUserTasks(collection);
+        qDebug() << __FUNCTION__ << "added user tasks count=" << ct;
         if (FAILED(hresult))
             QWinJumpListPrivate::warning("AddUserTasks", hresult);
         collection->Release();
     }
+    qDebug() << __FUNCTION__ << '<';
 }
 
 QList<QWinJumpListItem *> QWinJumpListPrivate::fromComCollection(IObjectArray *array)
 {
+    qDebug() << __FUNCTION__;
     QList<QWinJumpListItem *> list;
     UINT count = 0;
     array->GetCount(&count);
@@ -249,8 +271,10 @@ QList<QWinJumpListItem *> QWinJumpListPrivate::fromComCollection(IObjectArray *a
             qWarning("QWinJumpList: object of unexpected class found");
         }
         collectionItem->Release();
-        if (jumplistItem)
+        if (jumplistItem) {
+            qDebug() << __FUNCTION__ << "read" << jumplistItem->title() << jumplistItem->filePath();
             list.append(jumplistItem);
+        }
     }
     return list;
 }
@@ -259,14 +283,17 @@ IObjectCollection *QWinJumpListPrivate::toComCollection(const QList<QWinJumpList
 {
     if (list.isEmpty())
         return 0;
+
     IObjectCollection *collection = 0;
     HRESULT hresult = CoCreateInstance(qCLSID_EnumerableObjectCollection, 0, CLSCTX_INPROC_SERVER, qIID_IObjectCollection, reinterpret_cast<void **>(&collection));
+    qDebug() << __FUNCTION__<< collection;
     if (FAILED(hresult)) {
         QWinJumpListPrivate::warning("QWinJumpList: failed to instantiate IObjectCollection", hresult);
         return 0;
     }
     Q_FOREACH (QWinJumpListItem *item, list) {
         IUnknown *iitem = toICustomDestinationListItem(item);
+        qDebug() << __FUNCTION__ << item->title() << iitem;
         if (iitem) {
             collection->AddObject(iitem);
             iitem->Release();
@@ -329,6 +356,7 @@ IUnknown *QWinJumpListPrivate::toICustomDestinationListItem(const QWinJumpListIt
 
 IShellLinkW *QWinJumpListPrivate::toIShellLink(const QWinJumpListItem *item)
 {
+    qDebug() << __FUNCTION__ ;
     IShellLinkW *link = 0;
     HRESULT hresult = CoCreateInstance(CLSID_ShellLink, 0, CLSCTX_INPROC_SERVER, qIID_IShellLinkW, reinterpret_cast<void **>(&link));
     if (FAILED(hresult)) {
@@ -347,7 +375,8 @@ IShellLinkW *QWinJumpListPrivate::toIShellLink(const QWinJumpListItem *item)
     }
 
     qt_qstringToNullTerminated(item->filePath(), buffer);
-    link->SetPath(buffer);
+    HRESULT hr = link->SetPath(buffer);
+    qDebug() << SUCCEEDED(hr) << "path";
 
     if (!item->workingDirectory().isEmpty()) {
         qt_qstringToNullTerminated(item->workingDirectory(), buffer);
@@ -355,7 +384,8 @@ IShellLinkW *QWinJumpListPrivate::toIShellLink(const QWinJumpListItem *item)
     }
 
     qt_qstringToNullTerminated(args, buffer);
-    link->SetArguments(buffer);
+    hr = link->SetArguments(buffer);
+    qDebug() << SUCCEEDED(hr) << "args";
 
     if (!item->icon().isNull()) {
         QString iconPath = QWinJumpListPrivate::iconsDirPath() + QString::number(reinterpret_cast<quintptr>(item), 16) + QLatin1String(".ico");
@@ -382,6 +412,7 @@ IShellLinkW *QWinJumpListPrivate::toIShellLink(const QWinJumpListItem *item)
     PropVariantClear(&titlepv);
 
     delete[] buffer;
+    qDebug() << __FUNCTION__ << "created" << link <<                 "from" << item;
     return link;
 }
 
@@ -393,6 +424,7 @@ IShellItem2 *QWinJumpListPrivate::toIShellItem(const QWinJumpListItem *item)
         QScopedArrayPointer<wchar_t> buffer(qt_qstringToNullTerminated(item->filePath()));
         qtShell32Dll.sHCreateItemFromParsingName(buffer.data(), 0, qIID_IShellItem2, reinterpret_cast<void **>(&shellitem));
     }
+    qDebug() << __FUNCTION__ << item->title() << shellitem << "from " << item;
     return shellitem;
 }
 
@@ -426,13 +458,17 @@ IShellLinkW *QWinJumpListPrivate::makeSeparatorShellItem()
 QWinJumpList::QWinJumpList(QObject *parent) :
     QObject(parent), d_ptr(new QWinJumpListPrivate)
 {
+    qDebug() << __FUNCTION__ << '>';
     Q_D(QWinJumpList);
     d->q_ptr = this;
+
     HRESULT hresult = CoCreateInstance(qCLSID_DestinationList, 0, CLSCTX_INPROC_SERVER, qIID_ICustomDestinationList, reinterpret_cast<void **>(&d_ptr->pDestList));
+    qDebug() << __FUNCTION__ << "destlist=" << d->pDestList;
     if (FAILED(hresult))
         QWinJumpListPrivate::warning("CoCreateInstance", hresult);
     setIdentifier(defaultIdentifier());
     d->invalidate();
+    qDebug() << __FUNCTION__ << '<';
 }
 
 /*!
@@ -441,6 +477,7 @@ QWinJumpList::QWinJumpList(QObject *parent) :
 QWinJumpList::~QWinJumpList()
 {
     Q_D(QWinJumpList);
+    qDebug() << __FUNCTION__ << ">dirty" << d->dirty;
     if (d->dirty)
         d->_q_rebuild();
     if (d->pDestList) {
@@ -448,6 +485,7 @@ QWinJumpList::~QWinJumpList()
         d->pDestList = 0;
     }
     d->destroy();
+    qDebug() << __FUNCTION__ << '<';
 }
 
 /*!
@@ -476,6 +514,7 @@ QString QWinJumpList::identifier() const
 
 void QWinJumpList::setIdentifier(const QString &identifier)
 {
+    qDebug() << __FUNCTION__ << '>' << identifier;
     Q_D(QWinJumpList);
     QString id = identifier;
     id.replace(QLatin1Char(' '), QLatin1Char('_'));
@@ -486,6 +525,7 @@ void QWinJumpList::setIdentifier(const QString &identifier)
         d->identifier = id;
         d->invalidate();
     }
+    qDebug() << __FUNCTION__ << '<' << identifier;
 }
 
 /*!
@@ -494,10 +534,12 @@ void QWinJumpList::setIdentifier(const QString &identifier)
 QWinJumpListCategory *QWinJumpList::recent() const
 {
     Q_D(const QWinJumpList);
+    qDebug() << __FUNCTION__  <<'>';
     if (!d->recent) {
         QWinJumpList *that = const_cast<QWinJumpList *>(this);
         that->d_func()->recent = QWinJumpListCategoryPrivate::create(QWinJumpListCategory::Recent, that);
     }
+    qDebug() << __FUNCTION__ <<'<';
     return d->recent;
 }
 
@@ -506,11 +548,13 @@ QWinJumpListCategory *QWinJumpList::recent() const
  */
 QWinJumpListCategory *QWinJumpList::frequent() const
 {
+    qDebug() << __FUNCTION__<< '>';
     Q_D(const QWinJumpList);
     if (!d->frequent) {
         QWinJumpList *that = const_cast<QWinJumpList *>(this);
         that->d_func()->frequent = QWinJumpListCategoryPrivate::create(QWinJumpListCategory::Frequent, that);
     }
+    qDebug() << __FUNCTION__ << '<';
     return d->frequent;
 }
 
@@ -519,11 +563,13 @@ QWinJumpListCategory *QWinJumpList::frequent() const
  */
 QWinJumpListCategory *QWinJumpList::tasks() const
 {
+    qDebug() << __FUNCTION__ << '>';
     Q_D(const QWinJumpList);
     if (!d->tasks) {
         QWinJumpList *that = const_cast<QWinJumpList *>(this);
         that->d_func()->tasks = QWinJumpListCategoryPrivate::create(QWinJumpListCategory::Tasks, that);
     }
+        qDebug() << __FUNCTION__ << '<';
     return d->tasks;
 }
 
@@ -572,6 +618,7 @@ QWinJumpListCategory *QWinJumpList::addCategory(const QString &title, const QLis
 void QWinJumpList::clear()
 {
     Q_D(QWinJumpList);
+    qDebug() << __FUNCTION__ << '>';
     recent()->clear();
     frequent()->clear();
     if (d->tasks)
@@ -579,6 +626,7 @@ void QWinJumpList::clear()
     foreach (QWinJumpListCategory *category, d->categories)
         category->clear();
     d->destroy();
+    qDebug() << __FUNCTION__ << '<';
 }
 
 #ifndef QT_NO_DEBUG_STREAM
diff --git a/src/winextras/qwinjumplistcategory.cpp b/src/winextras/qwinjumplistcategory.cpp
index 5879ea6..efe76d7 100644
--- a/src/winextras/qwinjumplistcategory.cpp
+++ b/src/winextras/qwinjumplistcategory.cpp
@@ -80,10 +80,12 @@ QWinJumpListCategoryPrivate::QWinJumpListCategoryPrivate() :
 QWinJumpListCategory *QWinJumpListCategoryPrivate::create(QWinJumpListCategory::Type type, QWinJumpList *jumpList)
 {
     QWinJumpListCategory *category = new QWinJumpListCategory;
+    qDebug() << __FUNCTION__ << type;
     category->d_func()->type = type;
     category->d_func()->jumpList = jumpList;
     if (type == QWinJumpListCategory::Recent || type == QWinJumpListCategory::Frequent)
         category->d_func()->loadRecents();
+    qDebug() << __FUNCTION__ << '<';
     return category;
 }
 
@@ -95,6 +97,8 @@ void QWinJumpListCategoryPrivate::invalidate()
 
 void QWinJumpListCategoryPrivate::loadRecents()
 {
+    qDebug() << __FUNCTION__ << '>' << "type" <<type
+             << "identifier" << jumpList->identifier();
     Q_ASSERT(jumpList);
     IApplicationDocumentLists *pDocList = 0;
     HRESULT hresult = CoCreateInstance(qCLSID_ApplicationDocumentLists, 0, CLSCTX_INPROC_SERVER, qIID_IApplicationDocumentLists, reinterpret_cast<void **>(&pDocList));
@@ -108,19 +112,26 @@ void QWinJumpListCategoryPrivate::loadRecents()
             IObjectArray *array = 0;
             hresult = pDocList->GetList(type == QWinJumpListCategory::Recent ? ADLT_RECENT : ADLT_FREQUENT,
                                         0, qIID_IObjectArray, reinterpret_cast<void **>(&array));
+            UINT count = 0;
+            if (array)
+                array->GetCount(&count);
+            qDebug() << __FUNCTION__ << "count=" << count << "for type" << type;
             if (SUCCEEDED(hresult)) {
                 items = QWinJumpListPrivate::fromComCollection(array);
                 array->Release();
             }
+            qDebug() << __FUNCTION__ << "items" << items.size() << items;
         }
         pDocList->Release();
     }
     if (FAILED(hresult))
         QWinJumpListPrivate::warning("loadRecents", hresult);
+    qDebug() << __FUNCTION__ << '<';
 }
 
 void QWinJumpListCategoryPrivate::addRecent(QWinJumpListItem *item)
 {
+    qDebug() << __FUNCTION__ << item->title() << item->filePath();
     Q_ASSERT(item->type() == QWinJumpListItem::Link);
     const QString identifier = jumpList ? jumpList->identifier() : QString();
     wchar_t *id = qt_qstringToNullTerminated(identifier);
@@ -258,6 +269,7 @@ void QWinJumpListCategory::addItem(QWinJumpListItem *item)
     Q_D(QWinJumpListCategory);
     if (!item)
         return;
+    qDebug() << __FUNCTION__ << d->type << item->title();
 
     if (d->type == Recent || d->type == Frequent) {
         if (item->type() == QWinJumpListItem::Separator) {
@@ -277,7 +289,9 @@ void QWinJumpListCategory::addItem(QWinJumpListItem *item)
         if (d->type == QWinJumpListCategory::Recent || d->type == QWinJumpListCategory::Frequent)
             d->addRecent(item);
         d->invalidate();
+
     }
+    qDebug() << __FUNCTION__ << "<";
 }
 
 /*!
@@ -285,6 +299,7 @@ void QWinJumpListCategory::addItem(QWinJumpListItem *item)
  */
 QWinJumpListItem *QWinJumpListCategory::addDestination(const QString &filePath)
 {
+    qDebug() << __FUNCTION__ << filePath;
     QWinJumpListItem *item = new QWinJumpListItem(QWinJumpListItem::Destination);
     item->setFilePath(filePath);
     addItem(item);
@@ -308,6 +323,7 @@ QWinJumpListItem *QWinJumpListCategory::addLink(const QString &title, const QStr
  */
 QWinJumpListItem *QWinJumpListCategory::addLink(const QIcon &icon, const QString &title, const QString &executablePath, const QStringList &arguments)
 {
+    qDebug() << __FUNCTION__ << icon << title << executablePath << arguments;
     QWinJumpListItem *item = new QWinJumpListItem(QWinJumpListItem::Link);
     item->setFilePath(executablePath);
     item->setTitle(title);
@@ -324,6 +340,7 @@ QWinJumpListItem *QWinJumpListCategory::addLink(const QIcon &icon, const QString
  */
 QWinJumpListItem *QWinJumpListCategory::addSeparator()
 {
+    qDebug() << __FUNCTION__ ;
     QWinJumpListItem *item = new QWinJumpListItem(QWinJumpListItem::Separator);
     addItem(item);
     return item;
diff --git a/tests/manual/jumplist/jumplist.pro b/tests/manual/jumplist/jumplist.pro
index c8a061d..484a07a 100644
--- a/tests/manual/jumplist/jumplist.pro
+++ b/tests/manual/jumplist/jumplist.pro
@@ -5,7 +5,7 @@ TEMPLATE = app
 
 SOURCES += main.cpp\
         testwidget.cpp
-
+CONFIG+=console
 HEADERS  += testwidget.h
 
 FORMS    += testwidget.ui
diff --git a/tests/manual/jumplist/main.cpp b/tests/manual/jumplist/main.cpp
index 51f49a7..2a7676e 100644
--- a/tests/manual/jumplist/main.cpp
+++ b/tests/manual/jumplist/main.cpp
@@ -35,6 +35,7 @@
 
 #include <QApplication>
 #include <QSettings>
+#include <QDebug>
 #include <QDir>
 
 void associateFileType()
@@ -43,7 +44,9 @@ void associateFileType()
     exeFileName = exeFileName.right(exeFileName.length() - exeFileName.lastIndexOf("/") - 1);
     QString appName = "QtWinExtras JumpList Test";
 
-    QSettings regApplications("HKEY_CURRENT_USER\\Software\\Classes\\Applications\\" + exeFileName, QSettings::NativeFormat);
+    const QString key = "HKEY_CURRENT_USER\\Software\\Classes\\Applications\\" + exeFileName;
+    QSettings regApplications(key, QSettings::NativeFormat);
+    qDebug() << key << "writable=" << regApplications.isWritable();
     regApplications.setValue("FriendlyAppName", appName);
 
     regApplications.beginGroup("SupportedTypes");
diff --git a/tests/manual/jumplist/testwidget.cpp b/tests/manual/jumplist/testwidget.cpp
index 32ad81b..d0b6cee 100644
--- a/tests/manual/jumplist/testwidget.cpp
+++ b/tests/manual/jumplist/testwidget.cpp
@@ -66,6 +66,11 @@ TestWidget::TestWidget(QWidget *parent) :
     connect(ui->btnUpdate,   SIGNAL(clicked()), SLOT(updateJumpList()));
     connect(ui->btnOpenFile, SIGNAL(clicked()), SLOT(openFile()));
     connect(ui->btnClose, SIGNAL(clicked()), qApp, SLOT(quit()));
+    ui->cbShowRecent->setChecked(true);
+    ui->cbShowFrequent->setChecked(true);
+    ui->cbRunFusion->setChecked(true);
+    ui->cbRunFullscreen->setChecked(true);
+    ui->cbRunText->setChecked(true);
 }
 
 TestWidget::~TestWidget()
@@ -96,30 +101,49 @@ void TestWidget::showFile(const QString &path)
 
 void TestWidget::updateJumpList()
 {
-    QWinJumpList jumplist;
-    jumplist.recent()->setVisible(ui->cbShowRecent->isChecked());
-    jumplist.frequent()->setVisible(ui->cbShowFrequent->isChecked());
+    static QWinJumpList *jumplist = new QWinJumpList(this);
+    qDebug() << __FUNCTION__;
+
+    jumplist->recent()->setVisible(ui->cbShowRecent->isChecked());
+    jumplist->frequent()->setVisible(ui->cbShowFrequent->isChecked());
     if (ui->cbRunFullscreen->isChecked()) {
         QWinJumpListItem *item = new QWinJumpListItem(QWinJumpListItem::Link);
-        item->setTitle(ui->cbRunFullscreen->text());
+        item->setTitle("FullscreenTest (task)");
         item->setFilePath(QDir::toNativeSeparators(QCoreApplication::applicationFilePath()));
         item->setArguments(QStringList("-fullscreen"));
         item->setIcon(style()->standardIcon(QStyle::SP_TitleBarMaxButton));
-        jumplist.tasks()->addItem(item);
+        jumplist->tasks()->addItem(item);
+
     }
     if (ui->cbRunFusion->isChecked()) {
-        jumplist.tasks()->addLink(style()->standardIcon(QStyle::SP_DesktopIcon), ui->cbRunFusion->text(), QDir::toNativeSeparators(QCoreApplication::applicationFilePath()), (QStringList() << "-style" << "fusion"));
+        jumplist->tasks()->addLink(style()->standardIcon(QStyle::SP_DesktopIcon),
+                                   "Fusion (task)",
+                                   QDir::toNativeSeparators(QCoreApplication::applicationFilePath()), (QStringList() << "-style" << "fusion"));
     }
+    jumplist->recent()->addLink(style()->standardIcon(QStyle::SP_DesktopIcon),
+                                "Fusion (recent)",
+                                QDir::toNativeSeparators(QCoreApplication::applicationFilePath()), (QStringList() << "-style" << "fusion"));
+    jumplist->recent()->setVisible(true);
+
+    jumplist->frequent()->addLink(style()->standardIcon(QStyle::SP_DesktopIcon),
+                                "Fusion (frequent)",
+                                QDir::toNativeSeparators(QCoreApplication::applicationFilePath()), (QStringList() << "-style" << "fusion"));
+    jumplist->frequent()->setVisible(true);
+
+
     if (ui->cbRunText->isChecked()) {
-        jumplist.tasks()->addSeparator();
-        jumplist.tasks()->addLink(ui->cbRunText->text(), QDir::toNativeSeparators(QCoreApplication::applicationFilePath()), QStringList("-text"));
+        jumplist->tasks()->addSeparator();
+        jumplist->tasks()->addLink("run test (task)", QDir::toNativeSeparators(QCoreApplication::applicationFilePath()), QStringList("-text"));
     }
-    jumplist.tasks()->setVisible(!jumplist.tasks()->isEmpty());
+    jumplist->tasks()->setVisible(!jumplist->tasks()->isEmpty());
+    qDebug() << "taskcount=" << jumplist->tasks()->count()<< "taskvis" << jumplist->tasks()->isVisible();
 }
 
 void TestWidget::openFile()
 {
-    QString filePath = QFileDialog::getOpenFileName(this, "Open a text file", QString(), "Text files (*.txt)");
+    QString filePath = QFileDialog::getOpenFileName(this, "Open a text file",
+                                                    QString(),
+                                                    "Text files (*.txt;*.cpp)");
     if (filePath.isEmpty())
         return;
     else
