diff --git a/sflphone-client-kde/src/sflphone_kdeview.cpp b/sflphone-client-kde/src/sflphone_kdeview.cpp
index 3e144e160e7174a99852d97213c1684dda79bea9..ad49b55d49dfed4f49e924a54183c7ca82b477f1 100644
--- a/sflphone-client-kde/src/sflphone_kdeview.cpp
+++ b/sflphone-client-kde/src/sflphone_kdeview.cpp
@@ -1150,11 +1150,14 @@ void sflphone_kdeView::editBeforeCall()
 		if(item)
 		{
 			Call * call = callList->findCallByHistoryItem(item);
-			name = call->getPeerName();
-			number = call->getPeerPhoneNumber();
+			if(call)
+			{
+				name = call->getPeerName();
+				number = call->getPeerPhoneNumber();
+			}
 		}
 	}
-	if(stackedWidget_screen->currentWidget() == page_addressBook)
+	else if(stackedWidget_screen->currentWidget() == page_addressBook)
 	{
 		QListWidgetItem * item = listWidget_addressBook->currentItem();
 		if(item)
@@ -1166,16 +1169,19 @@ void sflphone_kdeView::editBeforeCall()
 	}
 	else
 	{	return;	}
-	QString newNumber = QInputDialog::getText(this, i18n("Edit before call"), QString(), QLineEdit::Normal, number);
-	
-	action_history->setChecked(false);
-	action_addressBook->setChecked(false);
-	stackedWidget_screen->setCurrentWidget(page_callList);
-	Call * call = callList->addDialingCall(name);
-	call->appendItemText(newNumber);
-	addCallToCallList(call);
-	listWidget_callList->setCurrentRow(listWidget_callList->count() - 1);
-	action(call, CALL_ACTION_ACCEPT);
+	bool ok;
+	QString newNumber = QInputDialog::getText(this, i18n("Edit before call"), QString(), QLineEdit::Normal, number, &ok);
+	if(ok)
+	{
+		action_history->setChecked(false);
+		action_addressBook->setChecked(false);
+		stackedWidget_screen->setCurrentWidget(page_callList);
+		Call * call = callList->addDialingCall(name);
+		call->appendItemText(newNumber);
+		addCallToCallList(call);
+		listWidget_callList->setCurrentRow(listWidget_callList->count() - 1);
+		action(call, CALL_ACTION_ACCEPT);
+	}
 }
 
 void sflphone_kdeView::setAccountFirst(Account * account)