Index: scribus/appmodehelper.cpp
===================================================================
--- scribus/appmodehelper.cpp	(revision 20498)
+++ scribus/appmodehelper.cpp	(working copy)
@@ -128,8 +128,17 @@
 	switch (oldMode)
 	{
 		case modeDrawBezierLine:
+		{
+			//if No nodes were created
+			if (currItem == NULL) {
+				setSpecialEditMode(false);
+				break;
+			}
+			scmw->slotDocCh();
+			doc->view()->FirstPoly = true;
 			setSpecialEditMode(false);
 			break;
+		}
 		case modeEdit:
 			{
 				if (newMode != modeEdit)
Index: scribus/canvasmode_drawbezier.cpp
===================================================================
--- scribus/canvasmode_drawbezier.cpp	(revision 20498)
+++ scribus/canvasmode_drawbezier.cpp	(working copy)
@@ -151,6 +151,25 @@
 		undoManager->action(target, is);
 	}
 	m_view->setRedrawMarkerShown(false);
+
+	if(currItem != NULL)
+	{
+		//When only one node(size=2) was created; it's not a valid line(min valid PoLine size is 6), delete it
+		if ((currItem->PoLine.size() < 6) && (currItem->PoLine.size() >= 2) )
+		{
+			m_view->Deselect(false);
+			m_doc->Items->removeOne(currItem);
+		}
+		else
+		{
+			m_doc->SizeItem(currItem->PoLine.WidthHeight().x(), currItem->PoLine.WidthHeight().y(), currItem, false, false);
+			currItem->setPolyClip(qRound(qMax(currItem->lineWidth() / 2.0, 1.0)));
+			m_doc->AdjustItemSize(currItem);
+			currItem->ContourLine = currItem->PoLine.copy();
+			currItem->ClipEdited = true;
+			currItem->FrameType = 3;
+		}
+	}
 }
 
 void BezierMode::mouseDoubleClickEvent(QMouseEvent *m)
Index: scribus/scribus.cpp
===================================================================
--- scribus/scribus.cpp	(revision 20498)
+++ scribus/scribus.cpp	(working copy)
@@ -1715,24 +1715,6 @@
 					view->requestMode(modeNormal);
 					break;
 				case modeDrawBezierLine:
-					currItem->PoLine.resize(qMax(0, static_cast<int>(currItem->PoLine.size())-2));
-					if (currItem->PoLine.size() < 4)
-					{
-						view->Deselect(false);
-						doc->Items->removeOne(currItem);
-					}
-					else
-					{
-						doc->SizeItem(currItem->PoLine.WidthHeight().x(), currItem->PoLine.WidthHeight().y(), currItem, false, false);
-						currItem->setPolyClip(qRound(qMax(currItem->lineWidth() / 2.0, 1.0)));
-						doc->AdjustItemSize(currItem);
-						currItem->ContourLine = currItem->PoLine.copy();
-						currItem->ClipEdited = true;
-						currItem->FrameType = 3;
-						slotDocCh();
-					}
-					view->FirstPoly = true;
-					break;
 				default:
 					if (currItem->Sizing)
 					{
