diff --git a/src/plugins/designer/formwindoweditor.cpp b/src/plugins/designer/formwindoweditor.cpp
index 63ae50127e5e08ed43c30bc3b53a3dfac0aa4fb3..9fe8e3916d7ec23447381f86fb34435e3a140c50 100644
--- a/src/plugins/designer/formwindoweditor.cpp
+++ b/src/plugins/designer/formwindoweditor.cpp
@@ -81,6 +81,8 @@ FormWindowEditor::FormWindowEditor(Internal::DesignerXmlEditor *editor,
     connect(form, SIGNAL(changed()), this, SIGNAL(changed()));
     // Revert to saved/load externally modified files
     connect(&(d->m_file), SIGNAL(reload(QString)), this, SLOT(slotOpen(QString)));
+    // Force update of open editors model.
+    connect(&(d->m_file), SIGNAL(saved()), this, SIGNAL(changed()));
 }
 
 FormWindowEditor::~FormWindowEditor()
diff --git a/src/plugins/designer/formwindowfile.cpp b/src/plugins/designer/formwindowfile.cpp
index 4cb80925606440403f19d45730dd85f646d2e7ee..6851d5ed934dc378bbf3184ac12e3a835fc244b6 100644
--- a/src/plugins/designer/formwindowfile.cpp
+++ b/src/plugins/designer/formwindowfile.cpp
@@ -83,6 +83,7 @@ bool FormWindowFile::save(const QString &name /*= QString()*/)
     emit setDisplayName(fi.fileName());
     m_formWindow->setDirty(false);
     emit changed();
+    emit saved();
 
     return true;
 }
diff --git a/src/plugins/designer/formwindowfile.h b/src/plugins/designer/formwindowfile.h
index 36363f8fdb64144afb7f48f3579c7eca68e6f7ba..5c08cc8b732bae545d929f7d83ae1d228e8ffd52 100644
--- a/src/plugins/designer/formwindowfile.h
+++ b/src/plugins/designer/formwindowfile.h
@@ -50,14 +50,14 @@ public:
     explicit FormWindowFile(QDesignerFormWindowInterface *form, QObject *parent = 0);
 
     // IFile
-    bool save(const QString &fileName = QString());
-    QString fileName() const;
-    bool isModified() const;
-    bool isReadOnly() const;
-    bool isSaveAsAllowed() const;
-    void modified(Core::IFile::ReloadBehavior *behavior);
-    QString defaultPath() const;
-    QString suggestedFileName() const;
+    virtual bool save(const QString &fileName = QString());
+    virtual QString fileName() const;
+    virtual bool isModified() const;
+    virtual bool isReadOnly() const;
+    virtual bool isSaveAsAllowed() const;
+    virtual void modified(Core::IFile::ReloadBehavior *behavior);
+    virtual QString defaultPath() const;
+    virtual QString suggestedFileName() const;
     virtual QString mimeType() const;
 
     // Internal
@@ -70,6 +70,7 @@ public:
 
 signals:
     // Internal
+    void saved();
     void reload(const QString &);
     void setDisplayName(const QString &);