diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index e20cc77ed35b7c3fa233c0f44ed60813edd7c6b4..e3ab45c53effa6c1a83eda28ee505c900e15dd55 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -3444,6 +3444,17 @@
       <key>Value</key>
       <integer>0</integer>
     </map>
+    <key>MinObjectsForUnlinkConfirm</key>
+    <map>
+      <key>Comment</key>
+      <string>Minimum amount of objects in linkset for showing confirmation dialog</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>S32</string>
+      <key>Value</key>
+      <integer>6</integer>
+    </map>
     <key>EffectScriptChatParticles</key>
       <map>
       <key>Comment</key>
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index b13c30b6d48794dea299a2e1e6651edc8442f8e7..2fb26a3a4d3e32bf920e9d8a393a5f0c672d51db 100755
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -622,10 +622,41 @@ bool LLSelectMgr::linkObjects()
 
 bool LLSelectMgr::unlinkObjects()
 {
+	LLViewerObject *object = mSelectedObjects->getFirstRootObject();
+	if (!object) return false;
+
+	S32 min_objects_for_confirm = gSavedSettings.getS32("MinObjectsForUnlinkConfirm");
+	for (LLObjectSelection::root_iterator iter = getSelection()->root_begin();  iter != getSelection()->root_end(); iter++)
+	{
+		object = (*iter)->getObject();
+		if(object)
+		{
+			S32 objects_in_linkset = object->numChildren() + 1;
+			if(objects_in_linkset >= min_objects_for_confirm)
+			{
+				LLNotificationsUtil::add("ConfirmUnlink", LLSD(), LLSD(), boost::bind(&LLSelectMgr::confirmUnlinkObjects, this, _1, _2));
+				return true;
+			}
+		}
+	}
+
 	LLSelectMgr::getInstance()->sendDelink();
 	return true;
 }
 
+void LLSelectMgr::confirmUnlinkObjects(const LLSD& notification, const LLSD& response)
+{
+	S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
+	// if Cancel pressed
+	if (option == 1)
+	{
+		return;
+	}
+
+	LLSelectMgr::getInstance()->sendDelink();
+	return;
+}
+
 // in order to link, all objects must have the same owner, and the
 // agent must have the ability to modify all of the objects. However,
 // we're not answering that question with this method. The question
diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h
index 23c41e4cc1e40ee5fd4318f94eb548345fce6b70..316e72b11cfc5d527918e62444b0b2b99f3a73ae 100755
--- a/indra/newview/llselectmgr.h
+++ b/indra/newview/llselectmgr.h
@@ -506,6 +506,8 @@ class LLSelectMgr : public LLEditMenuHandler, public LLSingleton<LLSelectMgr>
 
 	bool unlinkObjects();
 
+	void confirmUnlinkObjects(const LLSD& notification, const LLSD& response);
+
 	bool enableLinkObjects();
 
 	bool enableUnlinkObjects();
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 4602a41d523ad1f257fd985a0fab1dbd976bb855..df4bf6700b9a76d8d8901d0af6da6a4daee78d14 100755
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -5365,7 +5365,21 @@ You cannot undo this action.
      notext="Cancel"
      yestext="OK"/>
   </notification>
-
+  
+  <notification
+     icon="alertmodal.tga"
+     name="ConfirmUnlink"
+     type="alertmodal">
+    <unique/>
+    This is a large linkset. If you unlink it, you may not be able to link it again. You may wish to take a copy of the linkset into your inventory as a precaution.
+    <tag>confirm</tag>
+    <usetemplate
+     ignoretext="Confirm when unlinking a linkset"
+     name="okcancelignore"
+     notext="Cancel"
+     yestext="Unlink"/>
+  </notification>
+  
   <notification
    icon="alertmodal.tga"
    name="HelpReportAbuseEmailLL"