diff --git a/src/plugins/projectexplorer/customtoolchain.cpp b/src/plugins/projectexplorer/customtoolchain.cpp
index 98b881d74a067f9614fb6e2f9672bb340dffecb0..e01179e9c64f382c4088cdada47b2a60b2c02385 100644
--- a/src/plugins/projectexplorer/customtoolchain.cpp
+++ b/src/plugins/projectexplorer/customtoolchain.cpp
@@ -501,7 +501,9 @@ CustomToolChainConfigWidget::CustomToolChainConfigWidget(CustomToolChain *tc) :
     m_cxx11Flags->setToolTip(tr("Comma-separated list of flags that turn on C++11 support."));
     m_mkspecs->setToolTip(tr("Comma-separated list of mkspecs."));
     m_compilerCommand->setExpectedKind(PathChooser::ExistingCommand);
+    m_compilerCommand->setHistoryCompleter(QLatin1String("PE.ToolChainCommand.History"));
     m_makeCommand->setExpectedKind(PathChooser::ExistingCommand);
+    m_makeCommand->setHistoryCompleter(QLatin1String("PE.MakeCommand.History"));
     m_mainLayout->addRow(tr("&Compiler path:"), m_compilerCommand);
     m_mainLayout->addRow(tr("&Make path:"), m_makeCommand);
     m_mainLayout->addRow(tr("&ABI:"), m_abiWidget);
diff --git a/src/plugins/projectexplorer/customwizard/customwizardpage.cpp b/src/plugins/projectexplorer/customwizard/customwizardpage.cpp
index dc9e218d71d9f668a0232cff758723a86e070df0..0382cedcefe396b46966a2621340cfaabe456875 100644
--- a/src/plugins/projectexplorer/customwizard/customwizardpage.cpp
+++ b/src/plugins/projectexplorer/customwizard/customwizardpage.cpp
@@ -336,6 +336,7 @@ QWidget *CustomWizardFieldPage::registerPathChooser(const QString &fieldName,
         pathChooser->setExpectedKind(Utils::PathChooser::Command);
     else if (expectedKind == QLatin1String("any"))
         pathChooser->setExpectedKind(Utils::PathChooser::Any);
+    pathChooser->setHistoryCompleter(QString::fromLatin1("PE.Custom.") + m_parameters->id + QLatin1Char('.') + field.name);
 
     registerField(fieldName, pathChooser, "path", SIGNAL(changed(QString)));
     // Connect to completeChanged() for derived classes that reimplement isComplete()
@@ -523,6 +524,7 @@ CustomWizardPage::CustomWizardPage(const QSharedPointer<CustomWizardContext> &ct
     CustomWizardFieldPage(ctx, parameters, parent),
     m_pathChooser(new Utils::PathChooser)
 {
+    m_pathChooser->setHistoryCompleter(QLatin1String("PE.ProjectDir.History"));
     addRow(tr("Path:"), m_pathChooser);
     connect(m_pathChooser, SIGNAL(validChanged()), this, SIGNAL(completeChanged()));
 }
diff --git a/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp b/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp
index 8cb99a3d93f006d8fcaadf58bc9dceac5722ef6c..bcc0f5a785bb5011a6e06e15b7c2af8b73af2c20 100644
--- a/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp
+++ b/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp
@@ -587,6 +587,7 @@ CustomWizardParameters::ParseResult
                     if (!booleanAttributeValue(reader, wizardEnabledAttributeC, true))
                         return ParseDisabled;
                     bp->id = attributeValue(reader, idAttributeC);
+                    id = bp->id;
                     bp->category = attributeValue(reader, categoryAttributeC);
                     bp->kind = kindAttribute(reader);
                     bp->requiredFeatures = requiredFeatures(reader);
diff --git a/src/plugins/projectexplorer/customwizard/customwizardparameters.h b/src/plugins/projectexplorer/customwizard/customwizardparameters.h
index cd531d2b74cad29f85be7ee47e8f3717959249a0..de871f5b35b44d0a5b53a257ab41ebd60805abe5 100644
--- a/src/plugins/projectexplorer/customwizard/customwizardparameters.h
+++ b/src/plugins/projectexplorer/customwizard/customwizardparameters.h
@@ -111,6 +111,7 @@ public:
                       Core::IWizard::Data *bp, QString *errorMessage);
     QString toString() const;
 
+    QString id;
     QString directory;
     QString klass;
     QList<CustomWizardFile> files;
diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp
index 45fb926236ab30ab365aacb133f603318b46d39b..df2e4803aa1e560469e94738291a1290b4f30f02 100644
--- a/src/plugins/projectexplorer/gcctoolchain.cpp
+++ b/src/plugins/projectexplorer/gcctoolchain.cpp
@@ -852,6 +852,7 @@ GccToolChainConfigWidget::GccToolChainConfigWidget(GccToolChain *tc) :
     const QStringList gnuVersionArgs = QStringList(QLatin1String("--version"));
     m_compilerCommand->setExpectedKind(PathChooser::ExistingCommand);
     m_compilerCommand->setCommandVersionArguments(gnuVersionArgs);
+    m_compilerCommand->setHistoryCompleter(QLatin1String("PE.Gcc.Command.History"));
     m_mainLayout->addRow(tr("&Compiler path:"), m_compilerCommand);
     m_platformCodeGenFlagsLineEdit = new QLineEdit(this);
     m_platformCodeGenFlagsLineEdit->setText(QtcProcess::joinArgs(tc->platformCodeGenFlags()));
diff --git a/src/plugins/projectexplorer/importwidget.cpp b/src/plugins/projectexplorer/importwidget.cpp
index e7e631f6cf1d8a9a947b61d8ed7030bc9d4a4b5d..f50fb90357c2607fe8dce66d09f28b9d5d443954 100644
--- a/src/plugins/projectexplorer/importwidget.cpp
+++ b/src/plugins/projectexplorer/importwidget.cpp
@@ -59,6 +59,7 @@ ImportWidget::ImportWidget(QWidget *parent) :
     layout->addWidget(m_pathChooser);
 
     m_pathChooser->setExpectedKind(Utils::PathChooser::ExistingDirectory);
+    m_pathChooser->setHistoryCompleter(QLatin1String("SourceDir.History"));
     QPushButton *importButton = new QPushButton(tr("Import"), widget);
     layout->addWidget(importButton);
 
diff --git a/src/plugins/projectexplorer/kitinformationconfigwidget.cpp b/src/plugins/projectexplorer/kitinformationconfigwidget.cpp
index 7c5ac9bcad1197e9ddcb99810ac4d72d3b0bde5f..4e62dcc149aad8f854a058734295aa9afca13357 100644
--- a/src/plugins/projectexplorer/kitinformationconfigwidget.cpp
+++ b/src/plugins/projectexplorer/kitinformationconfigwidget.cpp
@@ -61,6 +61,7 @@ SysRootInformationConfigWidget::SysRootInformationConfigWidget(Kit *k, const Kit
 {
     m_chooser = new Utils::PathChooser;
     m_chooser->setExpectedKind(Utils::PathChooser::ExistingDirectory);
+    m_chooser->setHistoryCompleter(QLatin1String("PE.SysRoot.History"));
     m_chooser->setFileName(SysRootKitInformation::sysRoot(k));
     connect(m_chooser, SIGNAL(changed(QString)), this, SLOT(pathWasChanged()));
 }
diff --git a/src/plugins/projectexplorer/processstep.cpp b/src/plugins/projectexplorer/processstep.cpp
index 93114501f7b7fbc3e68a165c4d44d99006c735e0..fd55ec46cd33c8533ac7e5dda69964ab3c6b84bf 100644
--- a/src/plugins/projectexplorer/processstep.cpp
+++ b/src/plugins/projectexplorer/processstep.cpp
@@ -236,6 +236,7 @@ ProcessStepConfigWidget::ProcessStepConfigWidget(ProcessStep *step)
 {
     m_ui.setupUi(this);
     m_ui.command->setExpectedKind(Utils::PathChooser::Command);
+    m_ui.command->setHistoryCompleter(QLatin1String("PE.ProcessStepCommand.History"));
     m_ui.workingDirectory->setExpectedKind(Utils::PathChooser::Directory);
 
     BuildConfiguration *bc = m_step->buildConfiguration();
diff --git a/src/plugins/projectexplorer/selectablefilesmodel.cpp b/src/plugins/projectexplorer/selectablefilesmodel.cpp
index 2baf213d81bb2c65667cf99c1c61b29a05433a8e..926f935f17dac0acdda5b74696ef7ecafb582b19 100644
--- a/src/plugins/projectexplorer/selectablefilesmodel.cpp
+++ b/src/plugins/projectexplorer/selectablefilesmodel.cpp
@@ -696,7 +696,7 @@ void SelectableFilesDialogAddDirectory::createPathChooser(QVBoxLayout *layout, c
 
     m_pathChooser = new Utils::PathChooser;
     m_pathChooser->setPath(path);
-
+    m_pathChooser->setHistoryCompleter(QLatin1String("PE.AddToProjectDir.History"));
     m_sourceDirectoryLabel = new QLabel(tr("Source directory:"));
     hbox->addWidget(m_sourceDirectoryLabel);
 
diff --git a/src/plugins/projectexplorer/targetsetupwidget.cpp b/src/plugins/projectexplorer/targetsetupwidget.cpp
index 239e1f3e4e723d61a0a0de23e5a9fee92f0ee9d4..7dc9c598115de543260dff782c9cbf4559e59351 100644
--- a/src/plugins/projectexplorer/targetsetupwidget.cpp
+++ b/src/plugins/projectexplorer/targetsetupwidget.cpp
@@ -180,6 +180,7 @@ void TargetSetupWidget::addBuildInfo(BuildInfo *info, bool isImport)
     pathChooser->setExpectedKind(Utils::PathChooser::Directory);
     pathChooser->setFileName(info->buildDirectory);
     pathChooser->setEnabled(info->supportsShadowBuild);
+    pathChooser->setHistoryCompleter(QLatin1String("BuildDir.History"));
     pathChooser->setReadOnly(!info->supportsShadowBuild || isImport);
     m_newBuildsLayout->addWidget(pathChooser, pos * 2, 1);