diff --git a/indra/llui/lldockcontrol.cpp b/indra/llui/lldockcontrol.cpp
index 7ef2b9822ce10525666f93652182a1e225c87927..e5ed1ad3b65622d47ba0235df0edc48df26a0868 100644
--- a/indra/llui/lldockcontrol.cpp
+++ b/indra/llui/lldockcontrol.cpp
@@ -74,8 +74,6 @@ LLDockControl::LLDockControl(LLView* dockWidget, LLFloater* dockableFloater,
 	{
 		mDockWidgetVisible = false;
 	}
-
-	mNonToolbarPanelHandle = dockableFloater->getRootView()->getChild<LLView>("non_toolbar_panel")->getHandle();
 }
 
 LLDockControl::~LLDockControl()
@@ -99,10 +97,11 @@ void LLDockControl::setDock(LLView* dockWidget)
 
 void LLDockControl::getAllowedRect(LLRect& rect)
 {
-	if (!mNonToolbarPanelHandle.isDead())
+	if (!mNonToolbarPanelHandle.get())
 	{
-		rect = mNonToolbarPanelHandle.get()->getRect();
+		mNonToolbarPanelHandle = LLUI::getRootView()->getChild<LLLayoutPanel>("non_toolbar_panel")->getHandle();
 	}
+	rect = mNonToolbarPanelHandle.get()->getRect();
 }
 
 void LLDockControl::repositionDockable()
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 17421969a4286e1b68ca55d4a5c24808106dba6a..db00fe1e2ae7e2b772eeb0856f1e9d4dbf79749e 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -3543,6 +3543,13 @@ LLCoordFloater::LLCoordFloater(const LLCoordCommon& other, LLFloater& floater)
 	convertFromCommon(other);
 }
 
+LLCoordFloater& LLCoordFloater::operator=(const LLCoordFloater& other)
+{
+	mFloater = other.mFloater;
+	coord_t::operator =(other);
+	return *this;
+}
+
 void LLCoordFloater::setFloater(LLFloater& floater)
 {
 	mFloater = floater.getHandle();
diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h
index e6309d79ed49b724dbaa6f00461c76d813118bfd..385e174ae0174bd8a0cc2f09b7b799ee4fb606bf 100644
--- a/indra/llui/llfloater.h
+++ b/indra/llui/llfloater.h
@@ -107,6 +107,8 @@ struct LLCoordFloater : LLCoord<LL_COORD_FLOATER>
 		return *this;
 	}
 
+	LLCoordFloater& operator=(const LLCoordFloater& other);
+
 	bool operator==(const LLCoordFloater& other) const;
 	bool operator!=(const LLCoordFloater& other) const { return !(*this == other); }