diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index a9eb45b14c0194f751356a1d6a628970612f4f9d..f83aa20e10c67fe045b791394c732f71c834488d 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -12723,5 +12723,16 @@
       <key>Value</key>
       <integer>0</integer>
     </map>
+    <key>OpenIMOnVoice</key>
+    <map>
+      <key>Comment</key>
+      <string>Open the corresponding IM window when connecting to a voice call.</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
 </map>
 </llsd>
diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml
index 1e9c3f54fd7beb5d547755f2ba3c3cce89f01329..bb022b7b112b929acb4fe48c56f5607420eeba0f 100644
--- a/indra/newview/app_settings/settings_minimal.xml
+++ b/indra/newview/app_settings/settings_minimal.xml
@@ -446,5 +446,16 @@
       <key>Value</key>
       <integer>0</integer>
     </map>
+    <key>OpenIMOnVoice</key>
+    <map>
+      <key>Comment</key>
+      <string>Open the corresponding IM window when connecting to a voice call.</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>1</integer>
+    </map>
   </map>
 </llsd>
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index 277fc9d7b9a612bfa7bc3704b2d28038d4b76cd5..3000209aadd228895e5d237e1935bb8c1601e8ac 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -1184,6 +1184,10 @@ void LLChicletPanel::onCurrentVoiceChannelChanged(const LLUUID& session_id)
 		if(chiclet)
 		{
 			chiclet->setShowSpeaker(true);
+			if (gSavedSettings.getBOOL("OpenIMOnVoice"))
+			{
+				LLIMFloater::show(chiclet->getSessionId());
+			}
 		}
 	}