diff --git a/src/core/config/desktop_linux.pri b/src/core/config/desktop_linux.pri
index 7f28cb36ba9aafad6dca2f1f5a9f59dc4b90c6c1..57fb39f6e59923f4eae9310018e1ffe75f5fadac 100644
--- a/src/core/config/desktop_linux.pri
+++ b/src/core/config/desktop_linux.pri
@@ -14,3 +14,4 @@ GYP_CONFIG += \
     use_kerberos=0 \
     use_pango=0 \
 
+!contains(QT_CONFIG, pulseaudio): GYP_CONFIG += use_pulseaudio=0
diff --git a/src/core/config/embedded_linux.pri b/src/core/config/embedded_linux.pri
index 4000625c68e2393e6c4ae8531930bcc4f257da31..773bf0be1f133118b5473b44055b7417baf53f02 100644
--- a/src/core/config/embedded_linux.pri
+++ b/src/core/config/embedded_linux.pri
@@ -1,7 +1,7 @@
 GYP_ARGS += "-D qt_os=\"embedded_linux\" -I config/embedded_linux.gypi"
 
 GYP_CONFIG += \
-    build_ffmpegsumo=0 \
+    build_ffmpegsumo=1 \
     configuration_policy=0 \
     desktop_linux=0 \
     disable_nacl=1 \
diff --git a/src/webengine/ui_delegates_manager.cpp b/src/webengine/ui_delegates_manager.cpp
index 48e1bee7e15e3ee0f673afa50ef7be09df149287..9e7af3fad36e46b2e2ba33d629abfd5724bfb1ad 100644
--- a/src/webengine/ui_delegates_manager.cpp
+++ b/src/webengine/ui_delegates_manager.cpp
@@ -310,15 +310,6 @@ void UIDelegatesManager::showDialog(QSharedPointer<JavaScriptDialogController> d
     QQmlProperty titleProp(dialog, QStringLiteral("title"));
     titleProp.write(title);
 
-    if (dialogComponentType == PromptDialog) {
-        QQmlProperty promptProp(dialog, QStringLiteral("prompt"));
-        promptProp.write(dialogController->defaultPrompt());
-        QQmlProperty inputSignal(dialog, QStringLiteral("onInput"));
-        CHECK_QML_SIGNAL_PROPERTY(inputSignal, dialogComponent->url());
-        static int setTextIndex = dialogController->metaObject()->indexOfSlot("textProvided(QString)");
-        QObject::connect(dialog, inputSignal.method(), dialogController.data(), dialogController->metaObject()->method(setTextIndex));
-    }
-
     QQmlProperty acceptSignal(dialog, QStringLiteral("onAccepted"));
     QQmlProperty rejectSignal(dialog, QStringLiteral("onRejected"));
     CHECK_QML_SIGNAL_PROPERTY(acceptSignal, dialogComponent->url());
@@ -328,6 +319,18 @@ void UIDelegatesManager::showDialog(QSharedPointer<JavaScriptDialogController> d
     QObject::connect(dialog, acceptSignal.method(), dialogController.data(), dialogController->metaObject()->method(acceptIndex));
     static int rejectIndex = dialogController->metaObject()->indexOfSlot("reject()");
     QObject::connect(dialog, rejectSignal.method(), dialogController.data(), dialogController->metaObject()->method(rejectIndex));
+
+    if (dialogComponentType == PromptDialog) {
+        QQmlProperty promptProp(dialog, QStringLiteral("prompt"));
+        promptProp.write(dialogController->defaultPrompt());
+        QQmlProperty inputSignal(dialog, QStringLiteral("onInput"));
+        CHECK_QML_SIGNAL_PROPERTY(inputSignal, dialogComponent->url());
+        static int setTextIndex = dialogController->metaObject()->indexOfSlot("textProvided(QString)");
+        QObject::connect(dialog, inputSignal.method(), dialogController.data(), dialogController->metaObject()->method(setTextIndex));
+        QQmlProperty closingSignal(dialog, QStringLiteral("onClosing"));
+        QObject::connect(dialog, closingSignal.method(), dialogController.data(), dialogController->metaObject()->method(rejectIndex));
+    }
+
     dialogComponent->completeCreate();
 
     QObject::connect(dialogController.data(), &JavaScriptDialogController::dialogCloseRequested, dialog, &QObject::deleteLater);