diff --git a/indra/llappearance/llavatarappearancedefines.cpp b/indra/llappearance/llavatarappearancedefines.cpp
index 3e91b47c07f0cb470c7207d207b1616fee3e762a..7c07ef3096d0c7bf60c8bd1bab751e867475d4de 100644
--- a/indra/llappearance/llavatarappearancedefines.cpp
+++ b/indra/llappearance/llavatarappearancedefines.cpp
@@ -65,14 +65,14 @@ LLAvatarAppearanceDictionary::Textures::Textures()
 	addEntry(TEX_HEAD_TATTOO,                 new TextureEntry("head_tattoo",      TRUE,  BAKED_NUM_INDICES, "",     LLWearableType::WT_TATTOO));
 	addEntry(TEX_UPPER_TATTOO,                new TextureEntry("upper_tattoo",     TRUE,  BAKED_NUM_INDICES, "",     LLWearableType::WT_TATTOO));
 	addEntry(TEX_LOWER_TATTOO,                new TextureEntry("lower_tattoo",     TRUE,  BAKED_NUM_INDICES, "",     LLWearableType::WT_TATTOO));
-	addEntry(TEX_SKIRT_TATTOO,				  new TextureEntry("skirt_tattoo",	   TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_TATTOO));
-	addEntry(TEX_HAIR_TATTOO,				  new TextureEntry("hair_tattoo",	   TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_TATTOO));
-	addEntry(TEX_EYES_TATTOO,				  new TextureEntry("eyes_tattoo",      TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_TATTOO));
-	addEntry(TEX_LEFT_ARM_TATTOO,			  new TextureEntry("leftarm_tattoo",   TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_TATTOO));
-	addEntry(TEX_LEFT_LEG_TATTOO,			  new TextureEntry("leftleg_tattoo",   TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_TATTOO));
-	addEntry(TEX_AUX1_TATTOO,				  new TextureEntry("aux1_tattoo",      TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_TATTOO));
-	addEntry(TEX_AUX2_TATTOO,				  new TextureEntry("aux2_tattoo",      TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_TATTOO));
-	addEntry(TEX_AUX3_TATTOO,				  new TextureEntry("aux3_tattoo",      TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_TATTOO));
+	addEntry(TEX_SKIRT_TATTOO,				  new TextureEntry("skirt_tattoo",	   TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_UNIVERSAL));
+	addEntry(TEX_HAIR_TATTOO,				  new TextureEntry("hair_tattoo",	   TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_UNIVERSAL));
+	addEntry(TEX_EYES_TATTOO,				  new TextureEntry("eyes_tattoo",      TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_UNIVERSAL));
+	addEntry(TEX_LEFT_ARM_TATTOO,			  new TextureEntry("leftarm_tattoo",   TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_UNIVERSAL));
+	addEntry(TEX_LEFT_LEG_TATTOO,			  new TextureEntry("leftleg_tattoo",   TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_UNIVERSAL));
+	addEntry(TEX_AUX1_TATTOO,				  new TextureEntry("aux1_tattoo",      TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_UNIVERSAL));
+	addEntry(TEX_AUX2_TATTOO,				  new TextureEntry("aux2_tattoo",      TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_UNIVERSAL));
+	addEntry(TEX_AUX3_TATTOO,				  new TextureEntry("aux3_tattoo",      TRUE,  BAKED_NUM_INDICES, "",	 LLWearableType::WT_UNIVERSAL));
 
 
 	addEntry(TEX_HEAD_BAKED,                  new TextureEntry("head-baked",       FALSE, BAKED_HEAD, "head"));
@@ -111,42 +111,42 @@ LLAvatarAppearanceDictionary::BakedTextures::BakedTextures()
 	addEntry(BAKED_EYES,       new BakedEntry(TEX_EYES_BAKED,  
 											  "eyes", "27b1bc0f-979f-4b13-95fe-b981c2ba9788",
 											  3, TEX_EYES_IRIS, TEX_EYES_TATTOO, TEX_EYES_ALPHA,
-											  3, LLWearableType::WT_EYES, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA));
+											  3, LLWearableType::WT_EYES, LLWearableType::WT_UNIVERSAL, LLWearableType::WT_ALPHA));
 
 	addEntry(BAKED_SKIRT,      new BakedEntry(TEX_SKIRT_BAKED,
 											  "skirt", "03e7e8cb-1368-483b-b6f3-74850838ba63", 
 											  2, TEX_SKIRT, TEX_SKIRT_TATTOO,
-											  2, LLWearableType::WT_SKIRT, LLWearableType::WT_TATTOO ));
+											  2, LLWearableType::WT_SKIRT, LLWearableType::WT_UNIVERSAL ));
 
 	addEntry(BAKED_HAIR,       new BakedEntry(TEX_HAIR_BAKED,
 											  "hair", "a60e85a9-74e8-48d8-8a2d-8129f28d9b61", 
 											  3, TEX_HAIR, TEX_HAIR_TATTOO, TEX_HAIR_ALPHA,
-											  3, LLWearableType::WT_HAIR, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA));
+											  3, LLWearableType::WT_HAIR, LLWearableType::WT_UNIVERSAL, LLWearableType::WT_ALPHA));
 
 	addEntry(BAKED_LEFT_ARM, new BakedEntry(TEX_LEFT_ARM_BAKED,
 		"leftarm", "9f39febf-22d7-0087-79d1-e9e8c6c9ed19",
 		1, TEX_LEFT_ARM_TATTOO,
-		1, LLWearableType::WT_TATTOO));
+		1, LLWearableType::WT_UNIVERSAL));
 
 	addEntry(BAKED_LEFT_LEG, new BakedEntry(TEX_LEFT_LEG_BAKED,
 		"leftleg", "054a7a58-8ed5-6386-0add-3b636fb28b78",
 		1, TEX_LEFT_LEG_TATTOO,
-		1, LLWearableType::WT_TATTOO));
+		1, LLWearableType::WT_UNIVERSAL));
 
 	addEntry(BAKED_AUX1, new BakedEntry(TEX_AUX1_BAKED,
 		"aux1", "790c11be-b25c-c17e-b4d2-6a4ad786b752",
 		1, TEX_AUX1_TATTOO,
-		1, LLWearableType::WT_TATTOO));
+		1, LLWearableType::WT_UNIVERSAL));
 
 	addEntry(BAKED_AUX2, new BakedEntry(TEX_AUX2_BAKED,
 		"aux2", "d78c478f-48c7-5928-5864-8d99fb1f521e",
 		1, TEX_AUX2_TATTOO,
-		1, LLWearableType::WT_TATTOO));
+		1, LLWearableType::WT_UNIVERSAL));
 
 	addEntry(BAKED_AUX3, new BakedEntry(TEX_AUX3_BAKED,
 		"aux3", "6a95dd53-edd9-aac8-f6d3-27ed99f3c3eb",
 		1, TEX_AUX3_TATTOO,
-		1, LLWearableType::WT_TATTOO));
+		1, LLWearableType::WT_UNIVERSAL));
 }
 
 LLAvatarAppearanceDictionary::MeshEntries::MeshEntries()
diff --git a/indra/llappearance/llwearabletype.cpp b/indra/llappearance/llwearabletype.cpp
index 207e0c4011f2e9c9496ea6c34b487d991b92f8a8..aba63d390622f301bec92b05220b34b9bec11312 100644
--- a/indra/llappearance/llwearabletype.cpp
+++ b/indra/llappearance/llwearabletype.cpp
@@ -91,6 +91,7 @@ LLWearableDictionary::LLWearableDictionary()
 	addEntry(LLWearableType::WT_SKIRT,        new WearableEntry("skirt",       "New Skirt",			LLAssetType::AT_CLOTHING, 	LLInventoryType::ICONNAME_CLOTHING_SKIRT, FALSE, TRUE));
 	addEntry(LLWearableType::WT_ALPHA,        new WearableEntry("alpha",       "New Alpha",			LLAssetType::AT_CLOTHING, 	LLInventoryType::ICONNAME_CLOTHING_ALPHA, FALSE, TRUE));
 	addEntry(LLWearableType::WT_TATTOO,       new WearableEntry("tattoo",      "New Tattoo",		LLAssetType::AT_CLOTHING, 	LLInventoryType::ICONNAME_CLOTHING_TATTOO, FALSE, TRUE));
+	addEntry(LLWearableType::WT_UNIVERSAL,    new WearableEntry("universal",   "New Universal",     LLAssetType::AT_CLOTHING,   LLInventoryType::ICONNAME_CLOTHING_UNIVERSAL, FALSE, TRUE));
 
 	addEntry(LLWearableType::WT_PHYSICS,      new WearableEntry("physics",     "New Physics",		LLAssetType::AT_CLOTHING, 	LLInventoryType::ICONNAME_CLOTHING_PHYSICS, TRUE, TRUE));
 
diff --git a/indra/llappearance/llwearabletype.h b/indra/llappearance/llwearabletype.h
index 519d5b92a2a46496cc32e09f2409b8d010aa97bf..ac81376538ed1d2d94f33babf891ee980f2e34dc 100644
--- a/indra/llappearance/llwearabletype.h
+++ b/indra/llappearance/llwearabletype.h
@@ -63,7 +63,8 @@ class LLWearableType
 		WT_ALPHA	  = 13,
 		WT_TATTOO	  = 14,
 		WT_PHYSICS	  = 15,
-		WT_COUNT	  = 16,
+		WT_UNIVERSAL  = 16,
+		WT_COUNT	  = 17,
 
 		WT_INVALID	  = 255,
 		WT_NONE		  = -1,
diff --git a/indra/llinventory/llinventorytype.h b/indra/llinventory/llinventorytype.h
index fc3c78cf5062c7c0333a68585733ab2aa1320c1e..691acee9cdc698ff4869c21091b81cc1245d6e76 100644
--- a/indra/llinventory/llinventorytype.h
+++ b/indra/llinventory/llinventorytype.h
@@ -100,6 +100,7 @@ class LLInventoryType
 		ICONNAME_CLOTHING_SKIRT,
 		ICONNAME_CLOTHING_ALPHA,
 		ICONNAME_CLOTHING_TATTOO,
+		ICONNAME_CLOTHING_UNIVERSAL,
 
 		ICONNAME_ANIMATION,
 		ICONNAME_GESTURE,
diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index 6d49e220654751a0b6405643ffb5d23640f2f7cf..559994e3c0840d08aa67dd3668f3cef87d5fdea3 100644
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -8955,7 +8955,7 @@
        id="1211"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_hair_red"
        value_min="0"
        value_max="1"
@@ -8973,7 +8973,7 @@
        id="1212"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_hair_green"
        value_min="0"
        value_max="1"
@@ -8991,7 +8991,7 @@
        id="1213"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_hair_blue"
        value_min="0"
        value_max="1"
@@ -12303,7 +12303,7 @@ render_pass="bump">
        id="924"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_eyes_red"
        value_min="0"
        value_max="1"
@@ -12321,7 +12321,7 @@ render_pass="bump">
        id="925"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_eyes_green"
        value_min="0"
        value_max="1"
@@ -12339,7 +12339,7 @@ render_pass="bump">
        id="926"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_eyes_blue"
        value_min="0"
        value_max="1"
@@ -12543,7 +12543,7 @@ render_pass="bump">
        id="1208"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_skirt_red"
        value_min="0"
        value_max="1"
@@ -12561,7 +12561,7 @@ render_pass="bump">
        id="1209"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_skirt_green"
        value_min="0"
        value_max="1"
@@ -12579,7 +12579,7 @@ render_pass="bump">
        id="1210"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_skirt_blue"
        value_min="0"
        value_max="1"
@@ -12612,7 +12612,7 @@ render_pass="bump">
        id="1214"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_leftarm_red"
        value_min="0"
        value_max="1"
@@ -12630,7 +12630,7 @@ render_pass="bump">
        id="1215"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_leftarm_green"
        value_min="0"
        value_max="1"
@@ -12648,7 +12648,7 @@ render_pass="bump">
        id="1216"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_leftarm_blue"
        value_min="0"
        value_max="1"
@@ -12681,7 +12681,7 @@ render_pass="bump">
        id="1217"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_leftleg_red"
        value_min="0"
        value_max="1"
@@ -12699,7 +12699,7 @@ render_pass="bump">
        id="1218"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_leftleg_green"
        value_min="0"
        value_max="1"
@@ -12717,7 +12717,7 @@ render_pass="bump">
        id="1219"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_leftleg_blue"
        value_min="0"
        value_max="1"
@@ -12750,7 +12750,7 @@ render_pass="bump">
        id="1220"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_aux1_red"
        value_min="0"
        value_max="1"
@@ -12768,7 +12768,7 @@ render_pass="bump">
        id="1221"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_aux1_green"
        value_min="0"
        value_max="1"
@@ -12786,7 +12786,7 @@ render_pass="bump">
        id="1222"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_aux1_blue"
        value_min="0"
        value_max="1"
@@ -12819,7 +12819,7 @@ render_pass="bump">
        id="1223"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_aux2_red"
        value_min="0"
        value_max="1"
@@ -12837,7 +12837,7 @@ render_pass="bump">
        id="1224"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_aux2_green"
        value_min="0"
        value_max="1"
@@ -12855,7 +12855,7 @@ render_pass="bump">
        id="1225"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_aux2_blue"
        value_min="0"
        value_max="1"
@@ -12888,7 +12888,7 @@ render_pass="bump">
        id="1226"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_aux3_red"
        value_min="0"
        value_max="1"
@@ -12906,7 +12906,7 @@ render_pass="bump">
        id="1227"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_aux3_green"
        value_min="0"
        value_max="1"
@@ -12924,7 +12924,7 @@ render_pass="bump">
        id="1228"
        group="1"
        edit_group="colorpicker_driven"
-       wearable="tattoo"
+       wearable="universal"
        name="tattoo_aux3_blue"
        value_min="0"
        value_max="1"
diff --git a/indra/newview/llinventoryicon.cpp b/indra/newview/llinventoryicon.cpp
index 495180f087a50097dfb5ba052085baf71a1e5938..1141dabeb8106d7c5810b5694da2b3e06fadbfd9 100644
--- a/indra/newview/llinventoryicon.cpp
+++ b/indra/newview/llinventoryicon.cpp
@@ -83,6 +83,7 @@ LLIconDictionary::LLIconDictionary()
 	addEntry(LLInventoryType::ICONNAME_CLOTHING_SKIRT, 			new IconEntry("Inv_Skirt"));
 	addEntry(LLInventoryType::ICONNAME_CLOTHING_ALPHA, 			new IconEntry("Inv_Alpha"));
 	addEntry(LLInventoryType::ICONNAME_CLOTHING_TATTOO, 		new IconEntry("Inv_Tattoo"));
+	addEntry(LLInventoryType::ICONNAME_CLOTHING_UNIVERSAL,      new IconEntry("Inv_Universal"));
 	addEntry(LLInventoryType::ICONNAME_ANIMATION, 				new IconEntry("Inv_Animation"));
 	addEntry(LLInventoryType::ICONNAME_GESTURE, 				new IconEntry("Inv_Gesture"));
 
diff --git a/indra/newview/lllocalbitmaps.cpp b/indra/newview/lllocalbitmaps.cpp
index 558dde5a8754c0193ef5646828bafde74d1e2a24..49a0e6510c4e1043347430be340fbe8f80d8d875 100644
--- a/indra/newview/lllocalbitmaps.cpp
+++ b/indra/newview/lllocalbitmaps.cpp
@@ -381,6 +381,7 @@ void LLLocalBitmap::replaceIDs(LLUUID old_id, LLUUID new_id)
 	updateUserLayers(old_id, new_id, LLWearableType::WT_SKIRT);
 	updateUserLayers(old_id, new_id, LLWearableType::WT_SOCKS);
 	updateUserLayers(old_id, new_id, LLWearableType::WT_TATTOO);
+	updateUserLayers(old_id, new_id, LLWearableType::WT_UNIVERSAL);
 	updateUserLayers(old_id, new_id, LLWearableType::WT_UNDERPANTS);
 	updateUserLayers(old_id, new_id, LLWearableType::WT_UNDERSHIRT);
 }
@@ -746,7 +747,7 @@ LLAvatarAppearanceDefines::ETextureIndex LLLocalBitmap::getTexIndex(
 
 		case LLWearableType::WT_TATTOO:
 		{
-			switch(baked_texind)
+			switch (baked_texind)
 			{
 				case LLAvatarAppearanceDefines::BAKED_HEAD:
 				{
@@ -764,6 +765,19 @@ LLAvatarAppearanceDefines::ETextureIndex LLLocalBitmap::getTexIndex(
 					result = LLAvatarAppearanceDefines::TEX_UPPER_TATTOO;
 					break;
 				}
+				default:
+				{
+					break;
+				}
+			}
+			break;
+			
+		}
+		case LLWearableType::WT_UNIVERSAL:
+		{
+			switch (baked_texind)
+			{
+				
 				case LLAvatarAppearanceDefines::BAKED_SKIRT:
 				{
 					result = LLAvatarAppearanceDefines::TEX_SKIRT_TATTOO;
diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp
index 73534bf4955410bdbb286082d201866fb84357f4..9976a3035ecbee0b51bc20b87b98e88d4437e785 100644
--- a/indra/newview/llpaneleditwearable.cpp
+++ b/indra/newview/llpaneleditwearable.cpp
@@ -97,6 +97,7 @@ enum ESubpart {
         SUBPART_SKIRT,
         SUBPART_ALPHA,
         SUBPART_TATTOO,
+		SUBPART_UNIVERSAL,
         SUBPART_PHYSICS_BREASTS_UPDOWN,
         SUBPART_PHYSICS_BREASTS_INOUT,
         SUBPART_PHYSICS_BREASTS_LEFTRIGHT,
@@ -240,8 +241,9 @@ LLEditWearableDictionary::Wearables::Wearables()
         addEntry(LLWearableType::WT_UNDERPANTS, new WearableEntry(LLWearableType::WT_UNDERPANTS,"edit_underpants_title","underpants_desc_text", texture_vec_t{TEX_LOWER_UNDERPANTS}, texture_vec_t{TEX_LOWER_UNDERPANTS}, subpart_vec_t{SUBPART_UNDERPANTS}));
         addEntry(LLWearableType::WT_SKIRT,              new WearableEntry(LLWearableType::WT_SKIRT,"edit_skirt_title","skirt_desc_text", texture_vec_t{TEX_SKIRT}, texture_vec_t{TEX_SKIRT}, subpart_vec_t{SUBPART_SKIRT}));
         addEntry(LLWearableType::WT_ALPHA,              new WearableEntry(LLWearableType::WT_ALPHA,"edit_alpha_title","alpha_desc_text", texture_vec_t(), texture_vec_t{TEX_LOWER_ALPHA, TEX_UPPER_ALPHA, TEX_HEAD_ALPHA, TEX_EYES_ALPHA, TEX_HAIR_ALPHA}, subpart_vec_t{SUBPART_ALPHA}));
-        addEntry(LLWearableType::WT_TATTOO,     new WearableEntry(LLWearableType::WT_TATTOO,"edit_tattoo_title","tattoo_desc_text", texture_vec_t{TEX_HEAD_TATTOO}, texture_vec_t{TEX_LOWER_TATTOO, TEX_UPPER_TATTOO, TEX_HEAD_TATTOO, TEX_SKIRT_TATTOO, TEX_HAIR_TATTOO, TEX_EYES_TATTOO, TEX_LEFT_ARM_TATTOO,TEX_LEFT_LEG_TATTOO,TEX_AUX1_TATTOO,TEX_AUX2_TATTOO,TEX_AUX3_TATTOO}, subpart_vec_t{SUBPART_TATTOO}));
-        addEntry(LLWearableType::WT_PHYSICS,    new WearableEntry(LLWearableType::WT_PHYSICS,"edit_physics_title","physics_desc_text", texture_vec_t(), texture_vec_t(), subpart_vec_t{SUBPART_PHYSICS_BREASTS_UPDOWN, SUBPART_PHYSICS_BREASTS_INOUT, SUBPART_PHYSICS_BREASTS_LEFTRIGHT, SUBPART_PHYSICS_BELLY_UPDOWN, SUBPART_PHYSICS_BUTT_UPDOWN, SUBPART_PHYSICS_BUTT_LEFTRIGHT, SUBPART_PHYSICS_ADVANCED}));
+        addEntry(LLWearableType::WT_TATTOO,     new WearableEntry(LLWearableType::WT_TATTOO,"edit_tattoo_title","tattoo_desc_text", texture_vec_t{TEX_HEAD_TATTOO}, texture_vec_t{TEX_LOWER_TATTOO, TEX_UPPER_TATTOO, TEX_HEAD_TATTOO}, subpart_vec_t{SUBPART_TATTOO}));
+		addEntry(LLWearableType::WT_UNIVERSAL,  new WearableEntry(LLWearableType::WT_UNIVERSAL, "edit_universal_title", "universal_desc_text", texture_vec_t{ TEX_SKIRT_TATTOO }, texture_vec_t{TEX_SKIRT_TATTOO, TEX_HAIR_TATTOO, TEX_EYES_TATTOO, TEX_LEFT_ARM_TATTOO, TEX_LEFT_LEG_TATTOO, TEX_AUX1_TATTOO, TEX_AUX2_TATTOO, TEX_AUX3_TATTOO }, subpart_vec_t{ SUBPART_UNIVERSAL }));
+		addEntry(LLWearableType::WT_PHYSICS,    new WearableEntry(LLWearableType::WT_PHYSICS,"edit_physics_title","physics_desc_text", texture_vec_t(), texture_vec_t(), subpart_vec_t{SUBPART_PHYSICS_BREASTS_UPDOWN, SUBPART_PHYSICS_BREASTS_INOUT, SUBPART_PHYSICS_BREASTS_LEFTRIGHT, SUBPART_PHYSICS_BELLY_UPDOWN, SUBPART_PHYSICS_BUTT_UPDOWN, SUBPART_PHYSICS_BUTT_LEFTRIGHT, SUBPART_PHYSICS_ADVANCED}));
 }
 
 LLEditWearableDictionary::WearableEntry::WearableEntry(LLWearableType::EType type,
@@ -294,7 +296,9 @@ LLEditWearableDictionary::Subparts::Subparts()
         addEntry(SUBPART_UNDERPANTS, new SubpartEntry(SUBPART_UNDERPANTS, "mPelvis", "underpants", "underpants_main_param_list", "underpants_main_tab", LLVector3d(0.f, 0.f, -0.5f), LLVector3d(-1.6f, 0.15f, -0.5f),SEX_BOTH));
         addEntry(SUBPART_ALPHA, new SubpartEntry(SUBPART_ALPHA, "mPelvis", "alpha", "alpha_main_param_list", "alpha_main_tab", LLVector3d(0.f, 0.f, 0.1f), LLVector3d(-2.5f, 0.5f, 0.8f),SEX_BOTH));
         addEntry(SUBPART_TATTOO, new SubpartEntry(SUBPART_TATTOO, "mPelvis", "tattoo", "tattoo_main_param_list", "tattoo_main_tab", LLVector3d(0.f, 0.f, 0.1f), LLVector3d(-2.5f, 0.5f, 0.8f),SEX_BOTH));
-        addEntry(SUBPART_PHYSICS_BREASTS_UPDOWN, new SubpartEntry(SUBPART_PHYSICS_BREASTS_UPDOWN, "mTorso", "physics_breasts_updown", "physics_breasts_updown_param_list", "physics_breasts_updown_tab", LLVector3d(0.f, 0.f, 0.3f), LLVector3d(0.f, 0.f, 0.f),SEX_FEMALE));
+		addEntry(SUBPART_UNIVERSAL, new SubpartEntry(SUBPART_UNIVERSAL, "mPelvis", "universal", "universal_main_param_list", "universal_main_tab", LLVector3d(0.f, 0.f, 0.1f), LLVector3d(-2.5f, 0.5f, 0.8f), SEX_BOTH));
+
+		addEntry(SUBPART_PHYSICS_BREASTS_UPDOWN, new SubpartEntry(SUBPART_PHYSICS_BREASTS_UPDOWN, "mTorso", "physics_breasts_updown", "physics_breasts_updown_param_list", "physics_breasts_updown_tab", LLVector3d(0.f, 0.f, 0.3f), LLVector3d(0.f, 0.f, 0.f),SEX_FEMALE));
         addEntry(SUBPART_PHYSICS_BREASTS_INOUT, new SubpartEntry(SUBPART_PHYSICS_BREASTS_INOUT, "mTorso", "physics_breasts_inout", "physics_breasts_inout_param_list", "physics_breasts_inout_tab", LLVector3d(0.f, 0.f, 0.3f), LLVector3d(0.f, 0.f, 0.f),SEX_FEMALE));
         addEntry(SUBPART_PHYSICS_BREASTS_LEFTRIGHT, new SubpartEntry(SUBPART_PHYSICS_BREASTS_LEFTRIGHT, "mTorso", "physics_breasts_leftright", "physics_breasts_leftright_param_list", "physics_breasts_leftright_tab", LLVector3d(0.f, 0.f, 0.3f), LLVector3d(0.f, 0.f, 0.f),SEX_FEMALE));
         addEntry(SUBPART_PHYSICS_BELLY_UPDOWN, new SubpartEntry(SUBPART_PHYSICS_BELLY_UPDOWN, "mTorso", "physics_belly_updown", "physics_belly_updown_param_list", "physics_belly_updown_tab", LLVector3d(0.f, 0.f, 0.3f), LLVector3d(0.f, 0.f, 0.f),SEX_BOTH));
@@ -747,6 +751,7 @@ BOOL LLPanelEditWearable::postBuild()
         mPanelSkirt = getChild<LLPanel>("edit_skirt_panel");
         mPanelAlpha = getChild<LLPanel>("edit_alpha_panel");
         mPanelTattoo = getChild<LLPanel>("edit_tattoo_panel");
+		mPanelUniversal = getChild<LLPanel>("edit_universal_panel");
         mPanelPhysics = getChild<LLPanel>("edit_physics_panel");
 
         mTxtAvatarHeight = mPanelShape->getChild<LLTextBox>("avatar_height");
@@ -1450,6 +1455,10 @@ LLPanel* LLPanelEditWearable::getPanel(LLWearableType::EType type)
                 case LLWearableType::WT_TATTOO:
                         return mPanelTattoo;
                         break;
+				
+				case LLWearableType::WT_UNIVERSAL:
+					return mPanelUniversal;
+					break;
 
                 case LLWearableType::WT_PHYSICS:
                         return mPanelPhysics;
diff --git a/indra/newview/llpaneleditwearable.h b/indra/newview/llpaneleditwearable.h
index 81acc31863d42b356d1ba8f5942ab47e348baf28..43d6a3595fdc7eaca0e2f6934cf1b771c35b33fe 100644
--- a/indra/newview/llpaneleditwearable.h
+++ b/indra/newview/llpaneleditwearable.h
@@ -167,6 +167,7 @@ class LLPanelEditWearable : public LLPanel
 	LLPanel *mPanelSkirt;
 	LLPanel *mPanelAlpha;
 	LLPanel *mPanelTattoo;
+	LLPanel *mPanelUniversal;
 	LLPanel *mPanelPhysics;
 
 	typedef std::map<std::string, LLAvatarAppearanceDefines::ETextureIndex> string_texture_index_map_t;
diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp
index 5973b08183dc355e95641de592b8c3b73ce05b53..1723844b5280b75ddf7ec94f958cb484ddfe8d82 100644
--- a/indra/newview/llpaneloutfitedit.cpp
+++ b/indra/newview/llpaneloutfitedit.cpp
@@ -466,6 +466,7 @@ BOOL LLPanelOutfitEdit::postBuild()
 	mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("skirt"), new LLFindActualWearablesOfType(LLWearableType::WT_SKIRT)));
 	mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("alpha"), new LLFindActualWearablesOfType(LLWearableType::WT_ALPHA)));
 	mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("tattoo"), new LLFindActualWearablesOfType(LLWearableType::WT_TATTOO)));
+	mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("universal"), new LLFindActualWearablesOfType(LLWearableType::WT_UNIVERSAL)));
 	mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("physics"), new LLFindActualWearablesOfType(LLWearableType::WT_PHYSICS)));
 
 	mCurrentOutfitName = getChild<LLTextBox>("curr_outfit_name"); 
diff --git a/indra/newview/llpaneloutfitedit.h b/indra/newview/llpaneloutfitedit.h
index 30870daf406297f220ab4e335fd9acf8e5feb9ac..e7e8ddab955556e277a1ce323e05512d8ad11705 100644
--- a/indra/newview/llpaneloutfitedit.h
+++ b/indra/newview/llpaneloutfitedit.h
@@ -97,6 +97,7 @@ class LLPanelOutfitEdit : public LLPanel
 		LVIT_SKIRT,
 		LVIT_ALPHA,
 		LVIT_TATTOO,
+		LVIT_UNIVERSAL,
 		LVIT_PHYSICS,
 		NUM_LIST_VIEW_ITEM_TYPES
 	} EListViewItemType; 
diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index 1ab7ec0156d56b42020e622c245f45ec96978453..61857d6fb1afef1209f5db81a00e107c7672ecc0 100644
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -138,6 +138,7 @@ LLLocalizedInventoryItemsDictionary::LLLocalizedInventoryItemsDictionary()
 	mInventoryItemsDict["New Skirt"]		= LLTrans::getString("New Skirt");
 	mInventoryItemsDict["New Alpha"]		= LLTrans::getString("New Alpha");
 	mInventoryItemsDict["New Tattoo"]		= LLTrans::getString("New Tattoo");
+	mInventoryItemsDict["New Universal"]    = LLTrans::getString("New Universal");
 	mInventoryItemsDict["New Physics"]		= LLTrans::getString("New Physics");
 	mInventoryItemsDict["Invalid Wearable"] = LLTrans::getString("Invalid Wearable");
 
diff --git a/indra/newview/llwearableitemslist.cpp b/indra/newview/llwearableitemslist.cpp
index ee2270c3236fa0faac9a3a741f6f4d88d21511ea..e7bbee5efd9b9f3d1edda598b32de3c42b02f781 100644
--- a/indra/newview/llwearableitemslist.cpp
+++ b/indra/newview/llwearableitemslist.cpp
@@ -455,6 +455,7 @@ clothing_to_string_map_t init_clothing_string_map()
 	w_map.insert(std::make_pair(LLWearableType::WT_SKIRT, "skirt_not_worn"));
 	w_map.insert(std::make_pair(LLWearableType::WT_ALPHA, "alpha_not_worn"));
 	w_map.insert(std::make_pair(LLWearableType::WT_TATTOO, "tattoo_not_worn"));
+	w_map.insert(std::make_pair(LLWearableType::WT_UNIVERSAL, "universal_not_worn"));
 	w_map.insert(std::make_pair(LLWearableType::WT_PHYSICS, "physics_not_worn"));
 	return w_map;
 }
diff --git a/indra/newview/skins/default/textures/icons/Inv_Universal.png b/indra/newview/skins/default/textures/icons/Inv_Universal.png
new file mode 100644
index 0000000000000000000000000000000000000000..a632197eb530c75502ff25b823b9bf0dbcee18dc
Binary files /dev/null and b/indra/newview/skins/default/textures/icons/Inv_Universal.png differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index d757e393669b1b582f2d1644bd4bff0eef43e419..7930902049f94a773f3909375715aa41cee60729 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -316,6 +316,7 @@ with the same filename but different name
   <texture name="Inv_SysClosed" file_name="icons/Inv_SysClosed.png" preload="false" />
   <texture name="Inv_SysOpen" file_name="icons/Inv_SysOpen.png" preload="false" />
   <texture name="Inv_Tattoo" file_name="icons/Inv_Tattoo.png" preload="false" />
+  <texture name="Inv_Universal" file_name="icons/Inv_Universal.png" preload="false" />
   <texture name="Inv_Physics" file_name="icons/Inv_Physics.png" preload="false" />
   <texture name="Inv_Texture" file_name="icons/Inv_Texture.png" preload="false" />
   <texture name="Inv_TrashClosed" file_name="icons/Inv_TrashClosed.png" preload="false" />
diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml
index 5b453641277a850de949c5fea62647872376e874..a9c036167fad8d702d12c7e88ccc1d307299cbd7 100644
--- a/indra/newview/skins/default/xui/en/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory.xml
@@ -275,6 +275,14 @@
              function="Inventory.DoCreate"
              parameter="tattoo" />
         </menu_item_call>
+      <menu_item_call
+         label="New Universal"
+         layout="topleft"
+         name="New Universal">
+        <menu_item_call.on_click
+         function="Inventory.DoCreate"
+         parameter="universal" />
+      </menu_item_call>
         <menu_item_call
          label="New Physics"
          layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/menu_inventory_add.xml b/indra/newview/skins/default/xui/en/menu_inventory_add.xml
index afeb1bf2261a889f23f7d07c1b11ff568730a573..29724b0270e5446e1f6a789c160a2ad152fa9c23 100644
--- a/indra/newview/skins/default/xui/en/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory_add.xml
@@ -194,6 +194,14 @@
                      function="Inventory.DoCreate"
                      parameter="tattoo" />
                 </menu_item_call>
+              <menu_item_call
+                 label="New Universal"
+                 layout="topleft"
+                 name="New Universal">
+                <menu_item_call.on_click
+                 function="Inventory.DoCreate"
+                 parameter="universal" />
+              </menu_item_call>
                 <menu_item_call
                  label="New Physics"
                  layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/menu_outfit_gear.xml b/indra/newview/skins/default/xui/en/menu_outfit_gear.xml
index 7faa4f3d71f1b9aff2af82e18aa77a7bb33070a2..61cb74f2304c9de6a139ae8191e5973463e25307 100644
--- a/indra/newview/skins/default/xui/en/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_outfit_gear.xml
@@ -175,6 +175,14 @@
                      function="Gear.Create"
                      parameter="tattoo" />
                 </menu_item_call>
+              <menu_item_call
+                 label="New Universal"
+                 layout="topleft"
+                 name="New Universal">
+                <menu_item_call.on_click
+                 function="Gear.Create"
+                 parameter="universal" />
+              </menu_item_call>
             </menu>
             <menu
              height="85"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/en/panel_edit_tattoo.xml
index c304188ad376ecf464ee8a67500139ba0a834e21..8fa85dce5f2d4dcb72d17965873c5eac2685f4b2 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_tattoo.xml
@@ -76,126 +76,7 @@
         <texture_picker.commit_callback
             function="TexturePicker.Commit" />
       </texture_picker>
-      <texture_picker
-         can_apply_immediately="true"
-         default_image_name="Default"
-         follows="left|top"
-         height="115"
-         label="Skirt Tattoo"
-         layout="topleft"
-         left_pad="30"
-         name="Skirt Tattoo"
-         tool_tip="Click to choose a picture"
-         top_delta="0"
-         width="115" >
-        <texture_picker.commit_callback
-            function="TexturePicker.Commit" />
-      </texture_picker>
-      <texture_picker
-       can_apply_immediately="true"
-       default_image_name="Default"
-       follows="left|top"
-       height="115"
-       label="Hair Tattoo"
-       layout="topleft"
-       left="20"
-       name="Hair Tattoo"
-       tool_tip="Click to choose a picture"
-       top_pad="10"
-       width="115" >
-        <texture_picker.commit_callback
-            function="TexturePicker.Commit" />
-      </texture_picker>
-      <texture_picker
-       can_apply_immediately="true"
-       default_image_name="Default"
-       follows="left|top"
-       height="115"
-       label="Eyes Tattoo"
-       layout="topleft"
-       left_pad="30"
-       name="Eyes Tattoo"
-       tool_tip="Click to choose a picture"
-       top_delta="0"
-       width="115" >
-        <texture_picker.commit_callback
-            function="TexturePicker.Commit" />
-      </texture_picker>
-      <texture_picker
-       can_apply_immediately="true"
-       default_image_name="Default"
-       follows="left|top"
-       height="115"
-       label="Left Arm Tattoo"
-       layout="topleft"
-       left="20"
-       name="Left Arm Tattoo"
-       tool_tip="Click to choose a picture"
-       top_pad="10"
-       width="115" >
-        <texture_picker.commit_callback
-            function="TexturePicker.Commit" />
-      </texture_picker>
-      <texture_picker
-       can_apply_immediately="true"
-       default_image_name="Default"
-       follows="left|top"
-       height="115"
-       label="Left Leg Tattoo"
-       layout="topleft"
-       left_pad="30"
-       name="Left Leg Tattoo"
-       tool_tip="Click to choose a picture"
-       top_delta="0"
-       width="115" >
-        <texture_picker.commit_callback
-            function="TexturePicker.Commit" />
-      </texture_picker>
-      <texture_picker
-       can_apply_immediately="true"
-       default_image_name="Default"
-       follows="left|top"
-       height="115"
-       label="Aux1 Tattoo"
-       layout="topleft"
-       left="20"
-       name="Aux1 Tattoo"
-       tool_tip="Click to choose a picture"
-       top_pad="10"
-       width="115" >
-        <texture_picker.commit_callback
-            function="TexturePicker.Commit" />
-      </texture_picker>
-      <texture_picker
-       can_apply_immediately="true"
-       default_image_name="Default"
-       follows="left|top"
-       height="115"
-       label="Aux2 Tattoo"
-       layout="topleft"
-       left_pad="30"
-       name="Aux2 Tattoo"
-       tool_tip="Click to choose a picture"
-       top_delta="0"
-       width="115" >
-        <texture_picker.commit_callback
-            function="TexturePicker.Commit" />
-      </texture_picker>
-      <texture_picker
-       can_apply_immediately="true"
-       default_image_name="Default"
-       follows="left|top"
-       height="115"
-       label="Aux3 Tattoo"
-       layout="topleft"
-       left="20"
-       name="Aux3 Tattoo"
-       tool_tip="Click to choose a picture"
-       top_pad="10"
-       width="115" >
-        <texture_picker.commit_callback
-            function="TexturePicker.Commit" />
-      </texture_picker>
+      
 
       <color_swatch
        can_apply_immediately="true"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_universal.xml b/indra/newview/skins/default/xui/en/panel_edit_universal.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2d7821ed3ace0b0530c96c7fad6c0787e2add7b2
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_edit_universal.xml
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+    background_visible="true"
+  follows="all"
+  height="400"
+  layout="topleft"
+  left="0"
+  name="edit_universal_panel"
+  top_pad="10"
+  width="333" >
+  <scroll_container
+     color="DkGray2"
+     follows="all"
+     height="400"
+     layout="topleft"
+     left="9"
+     name="avatar_universal_scroll"
+     opaque="true"
+     top_pad="10"
+     width="314">
+    <panel
+     border="false"
+       bg_alpha_color="DkGray2"
+       bg_opaque_color="DkGray2"
+       background_visible="true"
+       background_opaque="true"
+     follows="all"
+     height="800"
+     left="10"
+     layout="topleft"
+     name="avatar_universal_color_panel"
+     top="0"
+     width="313" >
+      <texture_picker
+       can_apply_immediately="true"
+       default_image_name="Default"
+       follows="left|top"
+       height="115"
+       label="Hair Tattoo"
+       layout="topleft"
+       left="20"
+       name="Hair Tattoo"
+       tool_tip="Click to choose a picture"
+       top_pad="10"
+       width="115" >
+        <texture_picker.commit_callback
+            function="TexturePicker.Commit" />
+      </texture_picker>
+      <texture_picker
+       can_apply_immediately="true"
+       default_image_name="Default"
+       follows="left|top"
+       height="115"
+       label="Eyes Tattoo"
+       layout="topleft"
+       left_pad="30"
+       name="Eyes Tattoo"
+       tool_tip="Click to choose a picture"
+       top_delta="0"
+       width="115" >
+        <texture_picker.commit_callback
+            function="TexturePicker.Commit" />
+      </texture_picker>
+      <texture_picker
+       can_apply_immediately="true"
+       default_image_name="Default"
+       follows="left|top"
+       height="115"
+       label="Left Arm Tattoo"
+       layout="topleft"
+       left="20"
+       name="Left Arm Tattoo"
+       tool_tip="Click to choose a picture"
+       top_pad="10"
+       width="115" >
+        <texture_picker.commit_callback
+            function="TexturePicker.Commit" />
+      </texture_picker>
+      <texture_picker
+       can_apply_immediately="true"
+       default_image_name="Default"
+       follows="left|top"
+       height="115"
+       label="Left Leg Tattoo"
+       layout="topleft"
+       left_pad="30"
+       name="Left Leg Tattoo"
+       tool_tip="Click to choose a picture"
+       top_delta="0"
+       width="115" >
+        <texture_picker.commit_callback
+            function="TexturePicker.Commit" />
+      </texture_picker>
+      <texture_picker
+       can_apply_immediately="true"
+       default_image_name="Default"
+       follows="left|top"
+       height="115"
+       label="Aux1 Tattoo"
+       layout="topleft"
+       left="20"
+       name="Aux1 Tattoo"
+       tool_tip="Click to choose a picture"
+       top_pad="10"
+       width="115" >
+        <texture_picker.commit_callback
+            function="TexturePicker.Commit" />
+      </texture_picker>
+      <texture_picker
+       can_apply_immediately="true"
+       default_image_name="Default"
+       follows="left|top"
+       height="115"
+       label="Aux2 Tattoo"
+       layout="topleft"
+       left_pad="30"
+       name="Aux2 Tattoo"
+       tool_tip="Click to choose a picture"
+       top_delta="0"
+       width="115" >
+        <texture_picker.commit_callback
+            function="TexturePicker.Commit" />
+      </texture_picker>
+      <texture_picker
+       can_apply_immediately="true"
+       default_image_name="Default"
+       follows="left|top"
+       height="115"
+       label="Aux3 Tattoo"
+       layout="topleft"
+       left="20"
+       name="Aux3 Tattoo"
+       tool_tip="Click to choose a picture"
+       top_pad="10"
+       width="115" >
+        <texture_picker.commit_callback
+            function="TexturePicker.Commit" />
+      </texture_picker>
+      <texture_picker
+         can_apply_immediately="true"
+         default_image_name="Default"
+         follows="left|top"
+         height="115"
+         label="Skirt Tattoo"
+         layout="topleft"
+         left_pad="30"
+         name="Skirt Tattoo"
+         tool_tip="Click to choose a picture"
+         top_delta="0"
+         width="115" >
+        <texture_picker.commit_callback
+            function="TexturePicker.Commit" />
+      </texture_picker>
+      <color_swatch
+       can_apply_immediately="true"
+       follows="left|top"
+       height="115"
+       label="Color/Tint"
+       layout="topleft"
+       left="30"
+       name="Color/Tint"
+       tool_tip="Click to open color picker"
+       top_pad="10"
+       width="115" >
+        <color_swatch.commit_callback
+            function="ColorSwatch.Commit" />
+      </color_swatch>
+    </panel>
+  </scroll_container>
+</panel>
+
diff --git a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
index f34b9132189318f140e331877f2089df1f05ffef..dc1553e6a30757a83cbdde600761d6f6ff840c74 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
@@ -71,6 +71,10 @@
      name="edit_tattoo_title">
         Editing Tattoo
     </string>
+  <string
+   name="edit_universal_title">
+    Editing Universal
+  </string>
     <string
      name="edit_physics_title">
         Editing Physics
@@ -135,6 +139,10 @@
      name="tattoo_desc_text">
         Tattoo:
     </string>
+  <string
+     name="universal_desc_text">
+    Universal:
+  </string>
     <string
      name="physics_desc_text">
         Physics:
@@ -418,6 +426,16 @@
          top="8"
          visible="false"
          width="333" />
+      <panel
+         filename="panel_edit_universal.xml"
+         follows="all"
+         height="425"
+         layout="topleft"
+         left="0"
+         name="edit_universal_panel"
+         top="8"
+         visible="false"
+         width="333" />
         <panel
          filename="panel_edit_physics.xml"
          follows="all"
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 0a220e68fd434fe38a968393fdab4ef5388afa5f..fa1dd41917fbca60cdababfe00727b98d143bf0b 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -2209,6 +2209,7 @@ For AI Character: Get the closest navigable point to the point provided.
 	<string name="skirt">Skirt</string>
 	<string name="alpha">Alpha</string>
 	<string name="tattoo">Tattoo</string>
+  <string name="universal">Universal</string>
   <string name="physics">Physics</string>
   <string name="invalid">invalid</string>
   <string name="none">none</string>
@@ -2225,6 +2226,7 @@ For AI Character: Get the closest navigable point to the point provided.
 	<string name="skirt_not_worn">Skirt not worn</string>
 	<string name="alpha_not_worn">Alpha not worn</string>
 	<string name="tattoo_not_worn">Tattoo not worn</string>
+  <string name="universal_not_worn">Universal not worn</string>
   <string name="physics_not_worn">Physics not worn</string>
 	<string name="invalid_not_worn">invalid</string>
 
@@ -2244,6 +2246,7 @@ For AI Character: Get the closest navigable point to the point provided.
 	<string name="create_new_skirt">Create new skirt</string>
 	<string name="create_new_alpha">Create new alpha</string>
 	<string name="create_new_tattoo">Create new tattoo</string>
+  <string name="create_new_universal">Create new universal</string>
   <string name="create_new_physics">Create new physics</string>
 	<string name="create_new_invalid">invalid</string>
 
@@ -3805,6 +3808,7 @@ Abuse Report</string>
   <string name="New Skirt">New Skirt</string>
   <string name="New Alpha">New Alpha</string>
   <string name="New Tattoo">New Tattoo</string>
+  <string name="New Universal">New Universal</string>
   <string name="New Physics">New Physics</string>
   <string name="Invalid Wearable">Invalid Wearable</string>
   <string name="New Gesture">New Gesture</string>