diff --git a/share/qtcreator/translations/extract-mimetypes.xq.in b/share/qtcreator/translations/extract-mimetypes.xq.in
new file mode 100644
index 0000000000000000000000000000000000000000..8a4bb835f7ddfe3c8c42ddafd24d235602b88415
--- /dev/null
+++ b/share/qtcreator/translations/extract-mimetypes.xq.in
@@ -0,0 +1,6 @@
+let $files := ( $$MIMETYPES_FILES )
+let $prefix := string(\"QT_TRANSLATE_NOOP("MimeType", "\")
+let $suffix := concat(\"")\", codepoints-to-string(10))
+for $file in $files
+    for $comment in doc($file)/*:mime-info/*:mime-type/*:comment
+        return fn:concat($prefix, data($comment), $suffix)
diff --git a/share/qtcreator/translations/translations.pro b/share/qtcreator/translations/translations.pro
index f56a2324e2137f90514fa11240c442d057c945d7..844d427b98e8777775b2540875b56f2cab85436f 100644
--- a/share/qtcreator/translations/translations.pro
+++ b/share/qtcreator/translations/translations.pro
@@ -8,13 +8,25 @@ defineReplace(prependAll) {
     return($$result)
 }
 
+XMLPATTERNS = $$targetPath($$[QT_INSTALL_BINS]/xmlpatterns)
 LUPDATE = $$targetPath($$[QT_INSTALL_BINS]/lupdate) -locations relative -no-ui-lines
 LRELEASE = $$targetPath($$[QT_INSTALL_BINS]/lrelease)
 
 TRANSLATIONS = $$prependAll(LANGUAGES, $$PWD/qtcreator_,.ts)
 
-contains(QT_VERSION, ^4\.[0-5]\..*):ts.commands = @echo This Qt version is too old for the ts target. Need Qt 4.6+.
-else:ts.commands = (cd $$IDE_SOURCE_TREE && $$LUPDATE src -ts $$TRANSLATIONS)
+MIME_TR_H = $$IDE_DATA_PATH/translations/mime_tr.h
+
+contains(QT_VERSION, ^4\.[0-5]\..*) {
+    ts.commands = @echo This Qt version is too old for the ts target. Need Qt 4.6+.
+} else {
+    for(dir, $$list($$files($$IDE_SOURCE_TREE/src/plugins/*))):MIMETYPES_FILES += $$files($$dir/*.mimetypes.xml)
+    MIMETYPES_FILES = \"$$join(MIMETYPES_FILES, \", \")\"
+    QMAKE_SUBSTITUTES += extract-mimetypes.xq.in
+    ts.commands += \
+        $$XMLPATTERNS -output $$MIME_TR_H $$PWD/extract-mimetypes.xq && \
+        (cd $$IDE_SOURCE_TREE && $$LUPDATE src $$MIME_TR_H -ts $$TRANSLATIONS) && \
+        $$QMAKE_DEL_FILE $$MIME_TR_H
+}
 QMAKE_EXTRA_TARGETS += ts
 
 TEMPLATE = app
diff --git a/src/plugins/coreplugin/mimedatabase.cpp b/src/plugins/coreplugin/mimedatabase.cpp
index e18edea733742475d15723a684b27e2eeccfc9be..93652263516d9ef407f333f93137c96cef672302 100644
--- a/src/plugins/coreplugin/mimedatabase.cpp
+++ b/src/plugins/coreplugin/mimedatabase.cpp
@@ -717,7 +717,7 @@ bool BaseMimeTypeParser::parse(QIODevice *dev, const QString &fileName, QString
             case ParseComment: {
                 // comments have locale attributes. We want the default, English one
                 QString locale = reader.attributes().value(QLatin1String(localeAttributeC)).toString();
-                const QString comment = reader.readElementText();
+                const QString comment = QCoreApplication::translate("MimeType", reader.readElementText().toAscii());
                 if (locale.isEmpty()) {
                     data.comment = comment;
                 } else {
diff --git a/src/plugins/coreplugin/sidebar.cpp b/src/plugins/coreplugin/sidebar.cpp
index 7e580484b4736a447263b32ca92bae7fad03a357..45e8712fd66ab05072749f7c86c14ce8714f630c 100644
--- a/src/plugins/coreplugin/sidebar.cpp
+++ b/src/plugins/coreplugin/sidebar.cpp
@@ -56,8 +56,11 @@ SideBar::SideBar(QList<SideBarItem*> itemList,
     foreach (SideBarItem *item, itemList) {
         const QString title = item->widget()->windowTitle();
         m_itemMap.insert(title, item);
-        if (defaultVisible.contains(item))
-            m_defaultVisible.append(title);
+    }
+    foreach (SideBarItem *item, defaultVisible) {
+        if (!itemList.contains(item))
+            continue;
+        m_defaultVisible.append(item->widget()->windowTitle());
     }
 
     m_availableItems = m_itemMap.keys();
@@ -166,7 +169,7 @@ void SideBar::readSettings(QSettings *settings)
         }
     } else {
         foreach (const QString &title, m_defaultVisible)
-            insertSideBarWidget(0, title);
+            insertSideBarWidget(m_widgets.count(), title);
     }
 
     if (settings->contains("HelpSideBar/Visible"))