diff --git a/src/plugins/platforms/cocoa/qcocoaprintdevice.mm b/src/plugins/platforms/cocoa/qcocoaprintdevice.mm
index b3551e2c29aedbe33b81f14abea754123cc13b1e..c26a2b22fdc8ed6f0eafd12cbbcaf85c9c2c061d 100644
--- a/src/plugins/platforms/cocoa/qcocoaprintdevice.mm
+++ b/src/plugins/platforms/cocoa/qcocoaprintdevice.mm
@@ -468,11 +468,11 @@ bool QCocoaPrintDevice::openPpdFile()
     CFURLRef ppdURL = NULL;
     char ppdPath[MAXPATHLEN];
     if (PMPrinterCopyDescriptionURL(m_printer, kPMPPDDescriptionType, &ppdURL) == noErr
-        && ppdURL != NULL
-        && CFURLGetFileSystemRepresentation(ppdURL, true, (UInt8*)ppdPath, sizeof(ppdPath))) {
-        m_ppd = ppdOpenFile(ppdPath);
+        && ppdURL != NULL) {
+        if (CFURLGetFileSystemRepresentation(ppdURL, true, (UInt8*)ppdPath, sizeof(ppdPath)))
+            m_ppd = ppdOpenFile(ppdPath);
+        CFRelease(ppdURL);
     }
-    CFRelease(ppdURL);
     return m_ppd ? true : false;
 }