diff --git a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp
index 3b17b607f824c1ca1d39feaaf739e821eab2ccbb..0dbaaaf31a1b317ee8694dbf0c2abf857b96c0bb 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp
@@ -654,7 +654,7 @@ S60CreatePackageStepConfigWidget::S60CreatePackageStepConfigWidget(S60CreatePack
     connect(m_ui.notSignedButton, SIGNAL(clicked()),
             this, SLOT(updateFromUi()));
     connect(m_ui.signaturePath, SIGNAL(changed(QString)),
-            this, SLOT(updateFromUi()));
+            this, SLOT(signatureChanged(QString)));
     connect(m_ui.keyFilePath, SIGNAL(changed(QString)),
             this, SLOT(updateFromUi()));
     connect(m_ui.smartInstaller, SIGNAL(clicked()),
@@ -663,6 +663,31 @@ S60CreatePackageStepConfigWidget::S60CreatePackageStepConfigWidget(S60CreatePack
             this, SLOT(resetPassphrases()));
 }
 
+void S60CreatePackageStepConfigWidget::signatureChanged(QString certFile)
+{
+    if (!certFile.isEmpty() && m_ui.keyFilePath->path().isEmpty()) {
+        /*  If a cert file is selected and there is not key file inserted,
+            then we check if there is a .key or .pem file in the folder with
+            the same base name as the cert file. This file is probably a key
+            file for this cert and the key field is then populated automatically
+        */
+        QFileInfo certFileInfo(certFile);
+        QDir directory = QDir(certFileInfo.absolutePath());
+        QString keyFile(certFileInfo.baseName() + QLatin1String(".key"));
+        QString pemFile(certFileInfo.baseName() + QLatin1String(".pem"));
+        QStringList files;
+        QStringList keys;
+        keys << keyFile << pemFile;
+        files = directory.entryList(QStringList(keys),
+                                    QDir::Files | QDir::NoSymLinks);
+
+        m_ui.keyFilePath->setPath(files.isEmpty()?
+                                      QString():
+                                      directory.filePath(files[0]));
+    }
+    updateFromUi();
+}
+
 void S60CreatePackageStepConfigWidget::updateUi()
 {
 
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h
index b37e517f17d71ba7cf9160e07daeedfd2d383bf1..f0a55203273750d36771dfa21b0ab497ff2143a5 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h
+++ b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h
@@ -180,6 +180,7 @@ private slots:
     void updateUi();
     void updateFromUi();
     void resetPassphrases();
+    void signatureChanged(QString certFile);
 
 private:
     S60CreatePackageStep *m_signStep;