diff --git a/src/plugins/coreplugin/coreconstants.h b/src/plugins/coreplugin/coreconstants.h
index c1fbb3e40f2e5f894dd7e6f3133ad43d68862956..af2e8e44b4a0a719dc34f713d0317184d5dad340 100644
--- a/src/plugins/coreplugin/coreconstants.h
+++ b/src/plugins/coreplugin/coreconstants.h
@@ -249,6 +249,8 @@ const char * const SETTINGS_CATEGORY_CORE_ICON = ":/core/images/category_core.pn
 const char * const SETTINGS_TR_CATEGORY_CORE = QT_TRANSLATE_NOOP("Core", "Environment");
 const char * const SETTINGS_ID_ENVIRONMENT = "A.General";
 
+const char * const SETTINGS_DEFAULTTEXTENCODING = "General/DefaultFileEncoding";
+
 const char * const ALL_FILES_FILTER      = QT_TRANSLATE_NOOP("Core", "All Files (*)");
 
 const int TARGET_ICON_SIZE = 32;
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index 566d372f224a79e8ae874165e6e00537d3749889..76912be772794e73d1eb799599741147b45ae380 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -66,6 +66,7 @@
 #include <QtCore/QProcess>
 #include <QtCore/QSet>
 #include <QtCore/QSettings>
+#include <QtCore/QTextCodec>
 
 #include <QtGui/QAction>
 #include <QtGui/QShortcut>
@@ -1984,6 +1985,15 @@ IFile::ReloadSetting EditorManager::reloadSetting() const
     return m_d->m_reloadSetting;
 }
 
+QTextCodec *EditorManager::defaultTextEncoding() const
+{
+    QSettings *settings = Core::ICore::instance()->settings();
+    if (QTextCodec *candidate = QTextCodec::codecForName(
+            settings->value(QLatin1String(Constants::SETTINGS_DEFAULTTEXTENCODING)).toByteArray()))
+        return candidate;
+    return QTextCodec::codecForLocale();
+}
+
 Core::IEditor *EditorManager::duplicateEditor(Core::IEditor *editor)
 {
     if (!editor->duplicateSupported())
diff --git a/src/plugins/coreplugin/editormanager/editormanager.h b/src/plugins/coreplugin/editormanager/editormanager.h
index 65a5b1038c0decfbac21997397cb3c46de6ae7ce..caab7f0f6cd165f995f47e823a72080c46a3827d 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.h
+++ b/src/plugins/coreplugin/editormanager/editormanager.h
@@ -192,6 +192,8 @@ public:
     void setReloadSetting(IFile::ReloadSetting behavior);
     IFile::ReloadSetting reloadSetting() const;
 
+    QTextCodec *defaultTextEncoding() const;
+
     // Helper to display a message dialog when encountering a read-only
     // file, prompting the user about how to make it writeable.
     enum ReadOnlyAction { RO_Cancel, RO_OpenVCS, RO_MakeWriteable, RO_SaveAs };
diff --git a/src/plugins/coreplugin/generalsettings.cpp b/src/plugins/coreplugin/generalsettings.cpp
index 12a719a1e84d4f8510cc35e3075a700f6f4ea8d9..94b8e6cd30994c3612bf1c916326f518e3680a5e 100644
--- a/src/plugins/coreplugin/generalsettings.cpp
+++ b/src/plugins/coreplugin/generalsettings.cpp
@@ -130,7 +130,7 @@ QWidget *GeneralSettings::createPage(QWidget *parent)
 
     QTextCodec *defaultTextCodec = QTextCodec::codecForLocale();
     if (QTextCodec *candidate = QTextCodec::codecForName(
-            settings->value(QLatin1String("General/DefaultFileEncoding")).toByteArray()))
+            settings->value(QLatin1String(Constants::SETTINGS_DEFAULTTEXTENCODING)).toByteArray()))
         defaultTextCodec = candidate;
 
     QList<int> mibs = QTextCodec::availableMibs();
@@ -225,7 +225,7 @@ void GeneralSettings::apply()
 #endif
 
     QSettings* settings = Core::ICore::instance()->settings();
-    return settings->setValue(QLatin1String("General/DefaultFileEncoding"),
+    return settings->setValue(QLatin1String(Constants::SETTINGS_DEFAULTTEXTENCODING),
                               m_codecs.at(m_page->encodingBox->currentIndex())->name());
 
 }
diff --git a/src/plugins/texteditor/basetextdocument.cpp b/src/plugins/texteditor/basetextdocument.cpp
index 0b799c20dfb9c42ec48bdb5c2828ce54fd1058e5..e52a38899c038335e8964aca2f0c264e693b0560 100644
--- a/src/plugins/texteditor/basetextdocument.cpp
+++ b/src/plugins/texteditor/basetextdocument.cpp
@@ -132,12 +132,7 @@ BaseTextDocument::BaseTextDocument()
     m_lineTerminatorMode = NativeLineTerminator;
     m_fileIsReadOnly = false;
     m_isBinaryData = false;
-    m_codec = QTextCodec::codecForLocale();
-    QSettings *settings = Core::ICore::instance()->settings();
-    if (QTextCodec *candidate = QTextCodec::codecForName(
-            settings->value(QLatin1String("General/DefaultFileEncoding")).toByteArray()))
-        m_codec = candidate;
-
+    m_codec = Core::EditorManager::instance()->defaultTextEncoding();
     m_hasDecodingError = false;
 }