diff --git a/src/corelib/io/qfileselector.cpp b/src/corelib/io/qfileselector.cpp
index 13e5f8e5d1..b4021c060f 100644
--- a/src/corelib/io/qfileselector.cpp
+++ b/src/corelib/io/qfileselector.cpp
@@ -157,7 +157,7 @@ QFileSelectorPrivate::QFileSelectorPrivate()
Selectors normally available are
\list
\li platform, any of the following strings which match the platform the application is running
- on: android, blackberry, ios, mac, linux, wince, unix, windows.
+ on: android, blackberry, ios, osx, darwin, mac, linux, wince, unix, windows.
\li locale, same as QLocale::system().name().
\endlist
@@ -374,12 +374,16 @@ QStringList QFileSelectorPrivate::platformSelectors()
ret << QStringLiteral("blackberry");
# elif defined(Q_OS_QNX)
ret << QStringLiteral("qnx");
-# elif defined(Q_OS_IOS)
- ret << QStringLiteral("ios");
# elif defined(Q_OS_LINUX)
ret << QStringLiteral("linux");
-# elif defined(Q_OS_MAC)
- ret << QStringLiteral("mac");
+# elif defined(Q_OS_DARWIN)
+ ret << QStringLiteral("darwin");
+ ret << QStringLiteral("mac"); // compatibility synonym
+# if defined(Q_OS_IOS)
+ ret << QStringLiteral("ios");
+# elif defined(Q_OS_OSX)
+ ret << QStringLiteral("osx");
+# endif
# else
struct utsname u;
if (uname(&u) != -1)
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+unix/+ios/test b/tests/auto/corelib/io/qfileselector/platforms/+darwin/test
similarity index 100%
rename from tests/auto/corelib/io/qfileselector/platforms/+unix/+ios/test
rename to tests/auto/corelib/io/qfileselector/platforms/+darwin/test
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+unix/+mac/test b/tests/auto/corelib/io/qfileselector/platforms/+darwin/test2
similarity index 100%
rename from tests/auto/corelib/io/qfileselector/platforms/+unix/+mac/test
rename to tests/auto/corelib/io/qfileselector/platforms/+darwin/test2
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+osx/test2 b/tests/auto/corelib/io/qfileselector/platforms/+osx/test2
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+ios/test b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+ios/test
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+osx/test b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/+osx/test
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/test b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/+mac/test
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/test b/tests/auto/corelib/io/qfileselector/platforms/+unix/+darwin/test
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/auto/corelib/io/qfileselector/qfileselector.qrc b/tests/auto/corelib/io/qfileselector/qfileselector.qrc
index abfead2a55..8fe7b841d2 100644
--- a/tests/auto/corelib/io/qfileselector/qfileselector.qrc
+++ b/tests/auto/corelib/io/qfileselector/qfileselector.qrc
@@ -13,8 +13,10 @@
platforms/test
platforms/+unix/+android/test
platforms/+unix/+blackberry/test
- platforms/+unix/+ios/test
- platforms/+unix/+mac/test
+ platforms/+unix/+darwin/+mac/+ios/test
+ platforms/+unix/+darwin/+mac/+osx/test
+ platforms/+unix/+darwin/+mac/test
+ platforms/+unix/+darwin/test
platforms/+windows/+wince/test
platforms/+windows/test
platforms/+windows/test2
@@ -24,12 +26,14 @@
platforms/+android/test2
platforms/+blackberry/test2
platforms/+ios/test2
- platforms/+mac/test2
+ platforms/+osx/test2
platforms/+linux/test2
platforms/+wince/test2
platforms/+android/test
platforms/+blackberry/test
platforms/+ios/test
+ platforms/+osx/test
+ platforms/+darwin/test
platforms/+mac/test
platforms/+linux/test
platforms/+wince/test
diff --git a/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp b/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp
index d6461c3aba..4ccaecba00 100644
--- a/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp
+++ b/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp
@@ -94,7 +94,8 @@ void tst_QFileSelector::basicTest_data()
QString test2("/test2");
QString expectedPlatform1File(":/platforms");
QString expectedPlatform2File(""); //Only the last selector
-#if defined(Q_OS_UNIX) && !defined(Q_OS_ANDROID) && !defined(Q_OS_BLACKBERRY) && !defined(Q_OS_IOS) && !defined(Q_OS_LINUX) && !defined(Q_OS_MAC)
+#if defined(Q_OS_UNIX) && !defined(Q_OS_ANDROID) && !defined(Q_OS_BLACKBERRY) && \
+ !defined(Q_OS_DARWIN) && !defined(Q_OS_LINUX)
/* We are only aware of specific unixes, and do not have test files for any of the others.
However those unixes can get a selector added from the result of a uname call, so this will
lead to a case where we don't have that file so we can't expect the concatenation of platform