diff --git a/doc/examples/addressbook-sdk/part5/addressbook.cpp b/doc/examples/addressbook-sdk/part5/addressbook.cpp
index 9311897437498dde22a05e1b6c6d1a4d45a32e27..eca1c0d24aa0fce2a8a7f8f7c0d374ffdca1c6c0 100644
--- a/doc/examples/addressbook-sdk/part5/addressbook.cpp
+++ b/doc/examples/addressbook-sdk/part5/addressbook.cpp
@@ -15,10 +15,6 @@ AddressBook::AddressBook(QWidget *parent)
     ui->editButton->setEnabled(false);
     ui->removeButton->setEnabled(false);
 
-//! [setup FindDialog]
-    dialog = new FindDialog;
-//! [private members]
-
     connect(ui->addButton, SIGNAL(clicked()), this,
                 SLOT(addContact()));
     connect(ui->submitButton, SIGNAL(clicked()), this,
@@ -65,6 +61,8 @@ void AddressBook::submitContact()
     if (name == "" || address == "") {
         QMessageBox::information(this, tr("Empty Field"),
             tr("Please enter a name and address."));
+        updateInterface(NavigationMode);
+        return;
     }
 
     if (currentMode == AddingMode) {
@@ -224,10 +222,10 @@ void AddressBook::updateInterface(Mode mode)
 //! [findContact]
 void AddressBook::findContact()
 {
-    dialog->show();
+    FindDialog dialog;
 
-    if (dialog->exec() == QDialog::Accepted) {
-        QString contactName = dialog->getFindText();
+    if (dialog.exec() == QDialog::Accepted) {
+        QString contactName = dialog.findText();
 
         if (contacts.contains(contactName)) {
             ui->nameLine->setText(contactName);
diff --git a/doc/examples/addressbook-sdk/part5/addressbook.h b/doc/examples/addressbook-sdk/part5/addressbook.h
index 85316284f2f32e3071e1a3603a36a10058f8945f..c0cbf32599a1742759ee7feafad15dfc03b9eedf 100644
--- a/doc/examples/addressbook-sdk/part5/addressbook.h
+++ b/doc/examples/addressbook-sdk/part5/addressbook.h
@@ -42,9 +42,6 @@ private:
     QString oldName;
     QString oldAddress;
     Mode currentMode;
-//! [dialog]
-    FindDialog *dialog;
-//! [dialog]
 };
 
 #endif // ADDRESSBOOK_H
diff --git a/doc/examples/addressbook-sdk/part5/finddialog.cpp b/doc/examples/addressbook-sdk/part5/finddialog.cpp
index 99ba98160215bec2a456472be5b1b6556fd2d658..579a3f36046edfdd8efdb680a5f6c8f09dd2aef6 100644
--- a/doc/examples/addressbook-sdk/part5/finddialog.cpp
+++ b/doc/examples/addressbook-sdk/part5/finddialog.cpp
@@ -8,7 +8,6 @@ FindDialog::FindDialog(QWidget *parent) :
     m_ui(new Ui::FindDialog)
 {
     m_ui->setupUi(this);
-    findText = "";
 
     connect(m_ui->findButton, SIGNAL(clicked()), this, SLOT(findClicked()));
 
@@ -29,18 +28,16 @@ void FindDialog::findClicked()
     if (text.isEmpty()) {
         QMessageBox::information(this, tr("Empty Field"),
             tr("Please enter a name."));
-        return;
+        reject();
     } else {
-        findText = text;
-        m_ui->lineEdit->clear();
-        hide();
+        accept();
     }
 }
 //! [findClicked]
 
-//! [getFindText]
-QString FindDialog::getFindText()
+//! [findText]
+QString FindDialog::findText()
 {
-    return findText;
+    return m_ui->lineEdit->text();
 }
-//! [getFindText]
+//! [findText]
diff --git a/doc/examples/addressbook-sdk/part5/finddialog.h b/doc/examples/addressbook-sdk/part5/finddialog.h
index e7d0e9825d76bd5d79a10571627f811d78fdd2de..9912dec8dfca5a994ec442026464320508f5e2ac 100644
--- a/doc/examples/addressbook-sdk/part5/finddialog.h
+++ b/doc/examples/addressbook-sdk/part5/finddialog.h
@@ -14,9 +14,9 @@ class FindDialog : public QDialog {
 public:
     FindDialog(QWidget *parent = 0);
     ~FindDialog();
-//! [getFindText]
-    QString getFindText();
-//! [getFindText]
+//! [findText]
+    QString findText();
+//! [findText]
 
 //! [findClicked]
 public slots: