Index: scribus/appmodehelper.cpp
===================================================================
--- scribus/appmodehelper.cpp	(revision 20498)
+++ scribus/appmodehelper.cpp	(working copy)
@@ -127,9 +127,32 @@
 
 	switch (oldMode)
 	{
-		case modeDrawBezierLine:
+		case modeDrawBezierLine: {
+			//if No nodes were created
+			if (currItem == NULL) {
+				setSpecialEditMode(false);
+				break;
+			}
+
+			//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) ) {
+				doc->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;
+				scmw->slotDocCh();
+			}
+			doc->view()->FirstPoly = true;
 			setSpecialEditMode(false);
 			break;
+		}
 		case modeEdit:
 			{
 				if (newMode != modeEdit)
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)
 					{
