diff --git a/app/settings/models/layoutsmodel.cpp b/app/settings/models/layoutsmodel.cpp
index be51f9c23..57827141a 100644
--- a/app/settings/models/layoutsmodel.cpp
+++ b/app/settings/models/layoutsmodel.cpp
@@ -24,6 +24,7 @@
 #include "../data/layoutdata.h"
 #include "../../layouts/manager.h"
 #include "../../layouts/synchronizer.h"
+#include "../../settings/universalsettings.h"
 
 // Qt
 #include <QDebug>
@@ -61,6 +62,11 @@ Layouts::Layouts(QObject *parent, Latte::Corona *corona)
 
     connect(m_corona->layoutsManager(), &Latte::Layouts::Manager::currentLayoutNameChanged, this, &Layouts::updateActiveStates);
     connect(m_corona->layoutsManager(), &Latte::Layouts::Manager::centralLayoutsChanged, this, &Layouts::updateActiveStates);
+
+    connect(m_corona->universalSettings(), &Latte::UniversalSettings::lastNonAssignedLayoutNameChanged, this, [&]() {
+        //FREE ACTIVITES LAYOUT changed and our model must be updated...
+        assignFreeActivitiesLayoutAt(m_corona->universalSettings()->lastNonAssignedLayoutName());
+    });
 }
 
 Layouts::~Layouts()
@@ -417,6 +423,22 @@ QStringList Layouts::cleanStrings(const QStringList &original, const QStringList
 }
 
 
+void Layouts::assignFreeActivitiesLayoutAt(const QString &layoutName)
+{
+    QString reqId = m_layoutsTable.idForOriginalName(layoutName);
+
+    if (reqId.isEmpty()) {
+        reqId = m_layoutsTable.idForCurrentName(layoutName);
+        if (reqId.isEmpty()) {
+            return;
+        }
+    }
+
+    int row = m_layoutsTable.indexOf(reqId);
+    setActivities(row, QStringList(Data::Layout::FREEACTIVITIESID));
+    setShares(row, QStringList());
+}
+
 void Layouts::autoAssignFreeActivitiesLayout()
 {
     QVector<int> roles;
diff --git a/app/settings/models/layoutsmodel.h b/app/settings/models/layoutsmodel.h
index 8cd76bda6..f4bbecb3d 100644
--- a/app/settings/models/layoutsmodel.h
+++ b/app/settings/models/layoutsmodel.h
@@ -123,7 +123,9 @@ private slots:
 private:
     void initActivities();
 
+    void assignFreeActivitiesLayoutAt(const QString &layoutName);
     void autoAssignFreeActivitiesLayout();
+
     void setActivities(const int &row, const QStringList &activities);
     void setId(const int &row, const QString &newId);
     void setShares(const int &row, const QStringList &shares);