diff --git a/src/tools/qwebengine_convert_dict/main.cpp b/src/tools/qwebengine_convert_dict/main.cpp
index 2142b5f0d16d9bb3ea9a482956d4abc27817edae..61e26c4a38644aacced7fb34b94487d2f75e389b 100644
--- a/src/tools/qwebengine_convert_dict/main.cpp
+++ b/src/tools/qwebengine_convert_dict/main.cpp
@@ -120,9 +120,34 @@ int main(int argc, char *argv[])
         return 1;
     }
 
-    PathService::Override(base::DIR_QT_LIBRARY_DATA,
-                          toFilePath(QLibraryInfo::location(QLibraryInfo::DataPath) %
-                                     QLatin1String("/resources")));
+    bool icuDataDirFound = false;
+    QString icuDataDir = QLibraryInfo::location(QLibraryInfo::DataPath)
+            % QLatin1String("/resources");
+
+    // Try to look up the path to the ICU data directory via an environment variable
+    // (e.g. for the case when the tool is ran during build phase, and regular installed
+    // ICU data file is not available).
+    QString icuPossibleEnvDataDir = QString::fromLatin1(qgetenv("QT_WEBENGINE_ICU_DATA_DIR"));
+    if (!icuPossibleEnvDataDir.isEmpty() && QFileInfo::exists(icuPossibleEnvDataDir)) {
+        icuDataDir = icuPossibleEnvDataDir;
+        icuDataDirFound = true;
+    }
+    // Try to find the ICU data directory in the installed Qt location.
+    else if (QFileInfo::exists(icuDataDir)) {
+        icuDataDirFound = true;
+    }
+
+    if (icuDataDirFound) {
+        PathService::Override(base::DIR_QT_LIBRARY_DATA, toFilePath(icuDataDir));
+    } else {
+        QTextStream out(stdout);
+        out << "Couldn't find ICU data directory. Please check that the following path exists: "
+            << icuDataDir
+            << "\nAlternatively provide the directory path via the QT_WEBENGINE_ICU_DAT_DIR "
+               "environment variable.\n" << endl;
+        return 1;
+    }
+
 
     base::AtExitManager exit_manager;
     base::i18n::InitializeICU();
diff --git a/src/tools/qwebengine_convert_dict/qwebengine_convert_dict.pro b/src/tools/qwebengine_convert_dict/qwebengine_convert_dict.pro
index 715081b5fb9726d5c014bdd69ad075c1e4efd745..f2dbb12cf8abdbde5d0abfbc741b8980f3b4d4aa 100644
--- a/src/tools/qwebengine_convert_dict/qwebengine_convert_dict.pro
+++ b/src/tools/qwebengine_convert_dict/qwebengine_convert_dict.pro
@@ -23,4 +23,11 @@ INCLUDEPATH += $$CHROMIUM_SRC_DIR
 SOURCES += \
     main.cpp
 
+# Support converting dictionaries in a prefix build, by supplying
+# the path to the ICU data file located in the Qt build path, rather
+# than the install path (which is not present at build time).
+icu_data_dir.name = QT_WEBENGINE_ICU_DATA_DIR
+icu_data_dir.value = $$OUT_PWD/../../../src/core/$$getConfigDir()
+QT_TOOL_ENV = icu_data_dir
 load(qt_tool)
+QT_TOOL_ENV =