diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp
index 972f256076cfad616051841bd5e858dbc9afa73f..da78b30b347eddcdfc09d969327514dfd1b760db 100644
--- a/indra/llprimitive/llmodel.cpp
+++ b/indra/llprimitive/llmodel.cpp
@@ -1798,7 +1798,7 @@ bool LLModel::loadModel(std::istream& is)
 		is.seekg(cur_pos);
 	}
 
-	if (lod == LLModel::LOD_PHYSICS)
+	if (lod == LLModel::LOD_HIGH || lod == LLModel::LOD_PHYSICS)
 	{
 		std::ios::pos_type cur_pos = is.tellg();
 		loadDecomposition(header, is);
@@ -2015,7 +2015,7 @@ LLModel::Decomposition::Decomposition(LLSD& data)
 
 void LLModel::Decomposition::fromLLSD(LLSD& decomp)
 {
-	if (decomp.has("HullList"))
+	if (decomp.has("HullList") && decomp.has("Positions"))
 	{
 		// updated for const-correctness. gcc is picky about this type of thing - Nyx
 		const LLSD::Binary& hulls = decomp["HullList"].asBinary();
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index cf07350d855b344a282d2135864b06d3657b0d0b..3c309f93bc5fe7ffc182c41341c74e5b273a3188 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -5587,7 +5587,7 @@
     <key>Type</key>
     <string>Boolean</string>
     <key>Value</key>
-    <real>0</real>
+    <real>1</real>
   </map>
   <key>MeshUploadLogXML</key>
   <map>
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index 0006e3423b72f1b5a7dfdd0b0ab2c50221a7d88b..67841620eaa22ccb491b3d349047f235c8d0a180 100644
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -1968,10 +1968,6 @@ bool LLModelLoader::loadFromSLM(const std::string& filename)
 					mPreview->critiqueRigForUploadApplicability( loaded_model->mSkinInfo.mJointNames );					
 				}
 			}
-			else
-			{
-				return false;
-			}
 		}
 	}	
 
@@ -1980,6 +1976,12 @@ bool LLModelLoader::loadFromSLM(const std::string& filename)
 		return false;
 	}
 
+	if (model[LLModel::LOD_PHYSICS].empty())
+	{ //no explicit physics block, copy HIGH_LOD into physics array to recover convex decomp
+		model[LLModel::LOD_PHYSICS] = model[LLModel::LOD_HIGH];
+	}
+
+
 	//load instance list
 	model_instance_list instance_list;