diff --git a/src/plugins/android/androidmanifesteditorwidget.cpp b/src/plugins/android/androidmanifesteditorwidget.cpp
index b6403625ccc8b0fc5e2d77472aa8ed07e1be2767..4c74236bc56cd8427240ace996c91ee90dd7d8df 100644
--- a/src/plugins/android/androidmanifesteditorwidget.cpp
+++ b/src/plugins/android/androidmanifesteditorwidget.cpp
@@ -99,7 +99,8 @@ AndroidManifestEditorWidget::AndroidManifestEditorWidget(QWidget *parent, TextEd
     : TextEditor::PlainTextEditorWidget(parent),
       m_dirty(false),
       m_stayClean(false),
-      m_setAppName(false)
+      m_setAppName(false),
+      m_appNameInStringsXml(false)
 {
     QSharedPointer<AndroidManifestDocument> doc(new AndroidManifestDocument(this));
     doc->setMimeType(QLatin1String(Constants::ANDROID_MANIFEST_MIME_TYPE));
@@ -586,7 +587,7 @@ void AndroidManifestEditorWidget::preSave()
     if (activePage() != Source)
         syncToEditor();
 
-    if (m_setAppName) {
+    if (m_setAppName && m_appNameInStringsXml) {
         QString baseDir = QFileInfo(static_cast<AndroidManifestDocument *>(editor()->document())->filePath()).absolutePath();
         QString fileName = baseDir + QLatin1String("/res/values/strings.xml");
         QFile f(fileName);
@@ -773,6 +774,8 @@ void AndroidManifestEditorWidget::syncToWidgets(const QDomDocument &doc)
     QString baseDir = QFileInfo(static_cast<AndroidManifestDocument *>(editor()->document())->filePath()).absolutePath();
     QString fileName = baseDir + QLatin1String("/res/values/strings.xml");
 
+    QDomElement applicationElement = manifest.firstChildElement(QLatin1String("application"));
+
     QFile f(fileName);
     if (f.exists() && f.open(QIODevice::ReadOnly)) {
         QDomDocument doc;
@@ -786,9 +789,13 @@ void AndroidManifestEditorWidget::syncToWidgets(const QDomDocument &doc)
                 metadataElem = metadataElem.nextSiblingElement(QLatin1String("string"));
             }
         }
+        m_appNameInStringsXml = true;
+    } else {
+        m_appNameLineEdit->setText(applicationElement.attribute(QLatin1String("android:label")));
+        m_appNameInStringsXml = false;
     }
 
-    QDomElement metadataElem = manifest.firstChildElement(QLatin1String("application")).firstChildElement(QLatin1String("activity")).firstChildElement(QLatin1String("meta-data"));
+    QDomElement metadataElem = applicationElement.firstChildElement(QLatin1String("activity")).firstChildElement(QLatin1String("meta-data"));
     while (!metadataElem.isNull()) {
         if (metadataElem.attribute(QLatin1String("android:name")) == QLatin1String("android.app.lib_name")) {
             m_targetLineEdit->setEditText(metadataElem.attribute(QLatin1String("android:value")));
@@ -893,6 +900,11 @@ void AndroidManifestEditorWidget::syncToEditor()
     manifest.setAttribute(QLatin1String("android:versionCode"), m_versionCode->value());
     manifest.setAttribute(QLatin1String("android:versionName"), m_versionNameLinedit->text());
 
+    if (!m_appNameInStringsXml) {
+        QDomElement application = manifest.firstChildElement(QLatin1String("application"));
+        application.setAttribute(QLatin1String("android:label"), m_appNameLineEdit->text());
+    }
+
     setUsesSdk(doc, manifest, extractVersion(m_androidMinSdkVersion->currentText()),
                extractVersion(m_androidTargetSdkVersion->currentText()));
 
diff --git a/src/plugins/android/androidmanifesteditorwidget.h b/src/plugins/android/androidmanifesteditorwidget.h
index 6227258ce452655ea64b3f269246eef579f4b99b..cdd77ef9262c5da7fd744c6de57fd7052dcbfcd3 100644
--- a/src/plugins/android/androidmanifesteditorwidget.h
+++ b/src/plugins/android/androidmanifesteditorwidget.h
@@ -138,6 +138,7 @@ private:
     bool m_dirty; // indicates that we need to call syncToEditor()
     bool m_stayClean;
     bool m_setAppName;
+    bool m_appNameInStringsXml;
     int m_errorLine;
     int m_errorColumn;