diff --git a/src/plugins/debugger/breakcondition.ui b/src/plugins/debugger/breakcondition.ui
index 73aaa8ac39198547e132f8ef691adc4099af91d4..a3e2e9babba462b9c7ca848c3af7c0660012fd8a 100644
--- a/src/plugins/debugger/breakcondition.ui
+++ b/src/plugins/debugger/breakcondition.ui
@@ -14,63 +14,43 @@
    <item>
     <layout class="QGridLayout" name="gridLayout">
      <item row="0" column="0">
-      <widget class="QLabel" name="labelFileName">
-       <property name="text">
-        <string>File name:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QLineEdit" name="lineEditFileName"/>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="labelLineNumber">
-       <property name="text">
-        <string>Line number:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QLineEdit" name="lineEditLineNumber"/>
-     </item>
-     <item row="2" column="0">
       <widget class="QLabel" name="labelFunction">
        <property name="text">
         <string>Function:</string>
        </property>
       </widget>
      </item>
-     <item row="2" column="1">
+     <item row="0" column="1">
       <widget class="QLineEdit" name="lineEditFunction"/>
      </item>
-     <item row="3" column="0">
+     <item row="1" column="0">
       <widget class="QLabel" name="labelCondition">
        <property name="text">
         <string>Condition:</string>
        </property>
       </widget>
      </item>
-     <item row="3" column="1">
+     <item row="1" column="1">
       <widget class="QLineEdit" name="lineEditCondition"/>
      </item>
-     <item row="4" column="0">
+     <item row="2" column="0">
       <widget class="QLabel" name="labelIgnoreCount">
        <property name="text">
         <string>Ignore count:</string>
        </property>
       </widget>
      </item>
-     <item row="4" column="1">
+     <item row="2" column="1">
       <widget class="QLineEdit" name="lineEditIgnoreCount"/>
      </item>
-     <item row="5" column="0">
+     <item row="3" column="0">
       <widget class="QLabel" name="labelThreadSpec">
        <property name="text">
         <string>Thread specification:</string>
        </property>
       </widget>
      </item>
-     <item row="5" column="1">
+     <item row="3" column="1">
       <widget class="QLineEdit" name="lineEditThreadSpec"/>
      </item>
     </layout>
diff --git a/src/plugins/debugger/breakpoint.ui b/src/plugins/debugger/breakpoint.ui
index ce11c651925a7400b08ce7b5ebdcbf5b04ac4652..5842e70aca6ebdbd0d2aee29bf557f40a157e8cc 100644
--- a/src/plugins/debugger/breakpoint.ui
+++ b/src/plugins/debugger/breakpoint.ui
@@ -34,7 +34,7 @@
       </widget>
      </item>
      <item row="1" column="1">
-      <widget class="QLineEdit" name="lineEditFileName"/>
+      <widget class="Utils::PathChooser" name="pathChooserFileName"/>
      </item>
      <item row="2" column="0">
       <widget class="QLabel" name="labelLineNumber">
diff --git a/src/plugins/debugger/breakwindow.cpp b/src/plugins/debugger/breakwindow.cpp
index 0ff0a255a0d0bdf8299bd286edf5167a0471e908..f3ae9284ae6c77448cc7815676ee4ed7e91539f1 100644
--- a/src/plugins/debugger/breakwindow.cpp
+++ b/src/plugins/debugger/breakwindow.cpp
@@ -35,6 +35,7 @@
 #include "ui_breakcondition.h"
 #include "ui_breakbyfunction.h"
 
+#include <utils/pathchooser.h>
 #include <utils/qtcassert.h>
 #include <utils/savedaction.h>
 
@@ -72,7 +73,8 @@ public:
         comboBoxType->insertItem(1, tr("Function Name"));
         comboBoxType->insertItem(2, tr("Function \"main()\""));
         comboBoxType->insertItem(3, tr("Address"));
-        lineEditFileName->setText(data->fileName);
+        pathChooserFileName->lineEdit()->setText(data->fileName);
+        pathChooserFileName->setExpectedKind(Utils::PathChooser::File);
         lineEditLineNumber->setText(QByteArray::number(data->lineNumber));
         lineEditFunction->setText(data->funcName);
         lineEditCondition->setText(data->condition);
@@ -96,7 +98,7 @@ public slots:
         const bool isFunctionVisible = index == 1;
         const bool isAddressVisible = index == 3;
         labelFileName->setEnabled(isLineVisible);
-        lineEditFileName->setEnabled(isLineVisible);
+        pathChooserFileName->setEnabled(isLineVisible);
         labelLineNumber->setEnabled(isLineVisible);
         lineEditLineNumber->setEnabled(isLineVisible);
         labelUseFullPath->setEnabled(isLineVisible);
@@ -381,16 +383,16 @@ bool BreakWindow::editBreakpoint(BreakpointData *data)
     if (dialog.exec() == QDialog::Rejected)
         return false;
     bool ok = false;
+    data->lineNumber = dialog.lineEditLineNumber->text().toInt();
+    data->useFullPath = dialog.checkBoxUseFullPath->isChecked();
     if (!dialog.lineEditAddress->text().isEmpty())
         data->address = dialog.lineEditAddress->text().toULongLong(&ok, 0);
     if (!dialog.lineEditFunction->text().isEmpty())
         data->funcName = dialog.lineEditFunction->text();
     if (!dialog.lineEditFunction->text().isEmpty())
         data->funcName = dialog.lineEditFunction->text();
-    if (!dialog.lineEditFileName->text().isEmpty())
-        data->fileName = dialog.lineEditFileName->text();
-    data->lineNumber = dialog.lineEditLineNumber->text().toInt();
-    data->useFullPath = dialog.checkBoxUseFullPath->isChecked();
+    if (!dialog.pathChooserFileName->path().isEmpty())
+        data->fileName = dialog.pathChooserFileName->lineEdit()->text();
     if (!dialog.lineEditCondition->text().isEmpty())
         data->condition = dialog.lineEditCondition->text().toUtf8();
     if (!dialog.lineEditIgnoreCount->text().isEmpty())
@@ -429,10 +431,6 @@ void BreakWindow::editBreakpoints(const QModelIndexList &list)
     dlg.setWindowTitle(tr("Edit Breakpoint Properties"));
     ui.lineEditFunction->hide();
     ui.labelFunction->hide();
-    ui.lineEditFileName->hide();
-    ui.labelFileName->hide();
-    ui.lineEditLineNumber->hide();
-    ui.labelLineNumber->hide();
     QAbstractItemModel *m = model();
     ui.lineEditCondition->setText(
         m->data(idx, BreakpointConditionRole).toString());
@@ -448,7 +446,7 @@ void BreakWindow::editBreakpoints(const QModelIndexList &list)
 
     foreach (const QModelIndex &idx, list) {
         //m->setData(idx.sibling(idx.row(), 1), ui.lineEditFunction->text());
-        //m->setData(idx.sibling(idx.row(), 2), ui.lineEditFileName->text());
+        //m->setData(idx.sibling(idx.row(), 2), ui.pathChooserFileName->text());
         //m->setData(idx.sibling(idx.row(), 3), ui.lineEditLineNumber->text());
         m->setData(idx, ui.lineEditCondition->text(), BreakpointConditionRole);
         m->setData(idx, ui.lineEditIgnoreCount->text(), BreakpointIgnoreCountRole);