diff --git a/src/printsupport/dialogs/qprintdialog_unix.cpp b/src/printsupport/dialogs/qprintdialog_unix.cpp
index 9633032a0f49d3720f73d527a2af8b2d257f6e02..c6c84ca701be14d6d3b048edd517a58554e3f7bf 100644
--- a/src/printsupport/dialogs/qprintdialog_unix.cpp
+++ b/src/printsupport/dialogs/qprintdialog_unix.cpp
@@ -661,18 +661,16 @@ QUnixPrintWidgetPrivate::QUnixPrintWidgetPrivate(QUnixPrintWidget *p, QPrinter *
     widget.setupUi(parent);
 
     int currentPrinterIndex = 0;
-    QStringList printers;
-    QString defaultPrinter;
     QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get();
     if (ps) {
-        printers = ps->availablePrintDeviceIds();
-        defaultPrinter = ps->defaultPrintDeviceId();
-    }
+        const QStringList printers = ps->availablePrintDeviceIds();
+        const QString defaultPrinter = ps->defaultPrintDeviceId();
+
+        widget.printers->addItems(printers);
 
-    for (int i = 0; i < printers.size(); ++i) {
-        widget.printers->addItem(printers.at(i));
-        if (printers.at(i) == defaultPrinter)
-            currentPrinterIndex = i;
+        const int idx = printers.indexOf(defaultPrinter);
+        if (idx >= 0)
+            currentPrinterIndex = idx;
     }
     widget.properties->setEnabled(true);
 
@@ -827,12 +825,9 @@ void QUnixPrintWidgetPrivate::applyPrinterProperties()
         widget.filename->setText( printer->outputFileName() );
     QString printerName = printer->printerName();
     if (!printerName.isEmpty()) {
-        for (int i = 0; i < widget.printers->count(); ++i) {
-            if (widget.printers->itemText(i) == printerName) {
-                widget.printers->setCurrentIndex(i);
-                break;
-            }
-        }
+        const int i = widget.printers->findText(printerName);
+        if (i >= 0)
+            widget.printers->setCurrentIndex(i);
     }
     // PDF printer not added to the dialog yet, we'll handle those cases in QUnixPrintWidgetPrivate::updateWidget