diff --git a/OpenSim/Framework/ConfigSettings.cs b/OpenSim/Framework/ConfigSettings.cs
index b0bdebe7fc..6ee7feeaa3 100644
--- a/OpenSim/Framework/ConfigSettings.cs
+++ b/OpenSim/Framework/ConfigSettings.cs
@@ -34,7 +34,13 @@ namespace OpenSim.Framework
public bool See_into_region_from_neighbor { get; set; }
public string StorageDll { get; set; }
public string ClientstackDll { get; set; }
+
+ ///
+ /// Controls whether physics can be applied to prims. Even if false, prims still have entries in a
+ /// PhysicsScene in order to perform collision detection
+ ///
public bool PhysicalPrim { get; set; }
+
public string LibrariesXMLFile { get; set; }
public const uint DefaultRegionHttpPort = 9000;
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 05c9924d6f..8ad35d33d9 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -1551,7 +1551,9 @@ namespace OpenSim.Region.Framework.Scenes
///
public void ApplyPhysics(uint rootObjectFlags, bool VolumeDetectActive, bool m_physicalPrim)
{
-// m_log.DebugFormat("[SCENE OBJECT PART]: Applying physics to {0} {1} {2}", Name, LocalId, UUID);
+// m_log.DebugFormat(
+// "[SCENE OBJECT PART]: Applying physics to {0} {1}, m_physicalPrim {2}",
+// Name, LocalId, UUID, m_physicalPrim);
bool isPhysical = (((rootObjectFlags & (uint) PrimFlags.Physics) != 0) && m_physicalPrim);
bool isPhantom = ((rootObjectFlags & (uint) PrimFlags.Phantom) != 0);
@@ -1816,6 +1818,9 @@ namespace OpenSim.Region.Framework.Scenes
///
public void DoPhysicsPropertyUpdate(bool UsePhysics, bool isNew)
{
+ if (!ParentGroup.Scene.m_physicalPrim && UsePhysics)
+ return;
+
if (IsJoint())
{
DoPhysicsPropertyUpdateForNinjaJoint(UsePhysics, isNew);
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini
index e158096cfe..4f4e112fc3 100644
--- a/bin/OpenSimDefaults.ini
+++ b/bin/OpenSimDefaults.ini
@@ -177,7 +177,8 @@
; ## PHYSICS
; ##
- ; if you would like to allow prims to be physical and move by physics with the physical checkbox in the client set this to true.
+ ; If true then prims can be made subject to physics (gravity, pushing, etc.).
+ ; If false then physics flag can be set but it is not honoured. However, prims are still solid for the purposes of collision direction
physical_prim = true
; Select a mesher here.