diff --git a/src/plugins/qt4projectmanager/profileeditor.cpp b/src/plugins/qt4projectmanager/profileeditor.cpp
index b16ce68d3aa54ec564b9e5c40481c464ee992a90..84ecab593a3a752771127d0383f7b6607d952233 100644
--- a/src/plugins/qt4projectmanager/profileeditor.cpp
+++ b/src/plugins/qt4projectmanager/profileeditor.cpp
@@ -34,6 +34,9 @@
 #include "qt4projectmanagerconstants.h"
 #include "profileeditorfactory.h"
 
+#include <coreplugin/icore.h>
+#include <coreplugin/actionmanager/actionmanager.h>
+#include <coreplugin/actionmanager/actioncontainer.h>
 #include <coreplugin/uniqueidmanager.h>
 #include <texteditor/fontsettings.h>
 #include <texteditor/texteditoractionhandler.h>
@@ -41,6 +44,7 @@
 #include <texteditor/texteditorsettings.h>
 
 #include <QtCore/QFileInfo>
+#include <QtGui/QMenu>
 
 using namespace Qt4ProjectManager;
 using namespace Qt4ProjectManager::Internal;
@@ -91,17 +95,41 @@ ProFileEditor::ProFileEditor(QWidget *parent, ProFileEditorFactory *factory, Tex
     ah->setupActions(this);
 
     baseTextDocument()->setSyntaxHighlighter(new ProFileHighlighter);
+    m_commentDefinition.clearCommentStyles();
+    m_commentDefinition.setSingleLine(QString(QLatin1Char('#')));
 }
 
 ProFileEditor::~ProFileEditor()
 {
 }
 
+void ProFileEditor::unCommentSelection()
+{
+    Utils::unCommentSelection(this, m_commentDefinition);
+}
+
 TextEditor::BaseTextEditorEditable *ProFileEditor::createEditableInterface()
 {
     return new ProFileEditorEditable(this);
 }
 
+void ProFileEditor::contextMenuEvent(QContextMenuEvent *e)
+{
+    QMenu *menu = new QMenu();
+
+    Core::ActionManager *am = Core::ICore::instance()->actionManager();
+    Core::ActionContainer *mcontext = am->actionContainer(Qt4ProjectManager::Constants::M_CONTEXT);
+    QMenu *contextMenu = mcontext->menu();
+
+    foreach (QAction *action, contextMenu->actions())
+        menu->addAction(action);
+
+    appendStandardContextMenuActions(menu);
+
+    menu->exec(e->globalPos());
+    delete menu;
+}
+
 void ProFileEditor::setFontSettings(const TextEditor::FontSettings &fs)
 {
     TextEditor::BaseTextEditor::setFontSettings(fs);
diff --git a/src/plugins/qt4projectmanager/profileeditor.h b/src/plugins/qt4projectmanager/profileeditor.h
index f6952815af17c5d8f6b2013b96de9a0410206163..30047ae9af30cb9786d988446fb3a03146222a16 100644
--- a/src/plugins/qt4projectmanager/profileeditor.h
+++ b/src/plugins/qt4projectmanager/profileeditor.h
@@ -32,6 +32,7 @@
 
 #include <texteditor/basetextdocument.h>
 #include <texteditor/basetexteditor.h>
+#include <utils/uncommentselection.h>
 
 namespace TextEditor {
 class FontSettings;
@@ -78,8 +79,12 @@ public:
 
     ProFileEditorFactory *factory() { return m_factory; }
     TextEditor::TextEditorActionHandler *actionHandler() const { return m_ah; }
+
+    void unCommentSelection();
+
 protected:
     TextEditor::BaseTextEditorEditable *createEditableInterface();
+    void contextMenuEvent(QContextMenuEvent *);
 
 public slots:
     virtual void setFontSettings(const TextEditor::FontSettings &);
@@ -87,6 +92,7 @@ public slots:
 private:
     ProFileEditorFactory *m_factory;
     TextEditor::TextEditorActionHandler *m_ah;
+    Utils::CommentDefinition m_commentDefinition;
 };
 
 class ProFileDocument : public TextEditor::BaseTextDocument
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
index 8633d8dcf34d1716ad98ad801055a8fe6243ee67..6ad65dc56cb5d2f03b0ba1083a3fb05ea6e241d9 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
@@ -39,6 +39,9 @@ namespace Constants {
 const char * const C_PROFILEEDITOR  = ".pro File Editor";
 const char * const C_PROFILEEDITOR_PANEL  = ".pro File Editor (embedded)";
 
+// menus
+const char * const M_CONTEXT = "ProFileEditor.ContextMenu";
+
 // kinds
 const char * const PROJECT_ID      = "Qt4.Qt4Project";
 const char * const PROFILE_EDITOR_ID = "Qt4.proFileEditor";
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
index 6a1f08e01d942990f0242b9384d8b6999c9e1713..525795f27aee66e5da667b31346a4c4944271c1e 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
@@ -66,6 +66,7 @@
 #include <coreplugin/actionmanager/actioncontainer.h>
 #include <coreplugin/actionmanager/command.h>
 #include <texteditor/texteditoractionhandler.h>
+#include <texteditor/texteditorconstants.h>
 
 #ifdef WITH_TESTS
 #    include <QTest>
@@ -117,7 +118,8 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString *
     addObject(m_qt4ProjectManager);
 
     TextEditor::TextEditorActionHandler *editorHandler
-            = new TextEditor::TextEditorActionHandler(Constants::C_PROFILEEDITOR);
+            = new TextEditor::TextEditorActionHandler(Constants::C_PROFILEEDITOR,
+                  TextEditor::TextEditorActionHandler::UnCommentSelection);
 
     m_proFileEditorFactory = new ProFileEditorFactory(m_qt4ProjectManager, editorHandler);
     addObject(m_proFileEditorFactory);
@@ -222,6 +224,13 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString *
     connect(m_projectExplorer, SIGNAL(currentProjectChanged(ProjectExplorer::Project *)),
             this, SLOT(currentProjectChanged()));
 
+    Core::ActionContainer *contextMenu= am->createMenu(Qt4ProjectManager::Constants::M_CONTEXT);
+
+    Core::Command *cmd;
+
+    cmd = am->command(TextEditor::Constants::UN_COMMENT_SELECTION);
+    contextMenu->addAction(cmd);
+
     return true;
 }