Index: scribus/scribusview.h
===================================================================
--- scribus/scribusview.h	(wersja 16859)
+++ scribus/scribusview.h	(kopia robocza)
@@ -293,7 +293,12 @@
 	void PasteToPage();
 	void TextToPath();
 	void adjustCMS();
-	
+
+//for linking frame after draw new frame
+private:
+	bool linkAfterDraw;
+	PageItem * firstFrame;
+
 private: // Private attributes
 	int m_previousMode;
 	QMenu *pmen3;
Index: scribus/scribusview.cpp
===================================================================
--- scribus/scribusview.cpp	(wersja 16859)
+++ scribus/scribusview.cpp	(kopia robocza)
@@ -79,6 +79,7 @@
 #include "commonstrings.h"
 #include "filewatcher.h"
 #include "hyphenator.h"
+#include "pageitem.h"
 #include "pageitem_imageframe.h"
 #include "pageitem_line.h"
 #include "pageitem_pathtext.h"
@@ -161,7 +162,8 @@
 	m_groupTransactions(0),
 	m_groupTransaction(NULL),
 	_isGlobalMode(true),
-	m_vhRulerHW(17)
+	m_vhRulerHW(17),
+	linkAfterDraw(false)
 {
 	setObjectName("s");
 	QPalette p=palette();
@@ -4196,12 +4198,36 @@
 		QMouseEvent* m = static_cast<QMouseEvent*> (event);
 		m_canvasMode->mouseReleaseEvent(m);
 		m_canvas->m_viewMode.m_MouseButtonPressed = false;
+		if (linkAfterDraw)
+		{
+			//user creates new frame using linking tool
+			PageItem * secondFrame = Doc->m_Selection->itemAt(0);
+			if (secondFrame && firstFrame)
+			{
+				firstFrame->link(secondFrame);
+				firstFrame = NULL;
+			}
+			linkAfterDraw = false;
+		}
 		return true;
 	}
 	else if (obj == widget() && event->type() == QEvent::MouseButtonPress)
 	{
 		QMouseEvent* m = static_cast<QMouseEvent*> (event);
+		bool linkmode = (Doc->appMode == modeLinkFrames);
+		firstFrame = Doc->m_Selection->itemAt(0);
 		m_canvasMode->mousePressEvent(m);
+		//if user dont click any frame he want to draw new frame and link it
+		bool requestDrawMode = (Doc->ElemToLink == NULL);
+		if (linkmode && requestDrawMode)
+		{
+			//switch to drawing new text frame
+			linkAfterDraw = true;
+			requestMode(modeDrawText);
+			m_canvasMode->mousePressEvent(m);
+		}
+		else
+			firstFrame = NULL;
 		m_canvas->m_viewMode.m_MouseButtonPressed = true;
 		return true;
 	}
