diff --git a/src/pdf/api/qpdfdestination.h b/src/pdf/api/qpdfdestination.h
index cad0419822dd7c0f3e4f6695a78864606fdadb96..32586322630b5273ad6d80adbb6fada5eb4fbd72 100644
--- a/src/pdf/api/qpdfdestination.h
+++ b/src/pdf/api/qpdfdestination.h
@@ -38,9 +38,10 @@
 #define QPDFDESTINATION_H
 
 #include <QtPdf/qtpdfglobal.h>
-#include <QExplicitlySharedDataPointer>
-#include <QObject>
-#include <QPointF>
+#include <QtCore/qdebug.h>
+#include <QtCore/qobject.h>
+#include <QtCore/qpoint.h>
+#include <QtCore/qshareddata.h>
 
 QT_BEGIN_NAMESPACE
 
@@ -76,6 +77,8 @@ protected:
     QExplicitlySharedDataPointer<QPdfDestinationPrivate> d;
 };
 
+Q_PDF_EXPORT QDebug operator<<(QDebug, const QPdfDestination &);
+
 QT_END_NAMESPACE
 
 #endif // QPDFDESTINATION_H
diff --git a/src/pdf/qpdfdestination.cpp b/src/pdf/qpdfdestination.cpp
index 86e429dcf48b5c74e4ac7d3ed15bdc6146a3e197..b347445e90ffa5eca23254d72a9f282b5f5f532b 100644
--- a/src/pdf/qpdfdestination.cpp
+++ b/src/pdf/qpdfdestination.cpp
@@ -77,6 +77,12 @@ QPdfDestination::~QPdfDestination()
 {
 }
 
+QPdfDestination &QPdfDestination::operator=(const QPdfDestination &other)
+{
+    d = other.d;
+    return *this;
+}
+
 /*!
     \property QPdfDestination::valid
 
@@ -118,16 +124,15 @@ qreal QPdfDestination::zoom() const
     return d->zoom;
 }
 
-//QDataStream& operator<<(QDataStream& stream, const QPdfDestination& dest)
-//{
-//    stream << *dest.d.data();
-//    return stream;
-//}
-
-QDataStream& operator<<(QDataStream& stream, const QPdfDestinationPrivate& dest)
+QDebug operator<<(QDebug dbg, const QPdfDestination& dest)
 {
-    stream << QStringLiteral("QPdfDestination") << dest.page << dest.location ; // << dest.zoom();
-    return stream;
+    QDebugStateSaver saver(dbg);
+    dbg.nospace();
+    dbg << "QPdfDestination(page=" << dest.page()
+        << " location=" << dest.location()
+        << " zoom=" << dest.zoom();
+    dbg << ')';
+    return dbg;
 }
 
 QT_END_NAMESPACE