diff --git a/components/nif/property.hpp b/components/nif/property.hpp
index 2fb3aa64d1..a0800d2700 100644
--- a/components/nif/property.hpp
+++ b/components/nif/property.hpp
@@ -139,6 +139,7 @@ namespace Nif
         float envMapIntensity{ 0.f };
         void read(NIFStream* nif) override;
 
+        bool specular() const { return flags1 & 1; }
         bool doubleSided() const { return (flags2 >> 4) & 1; }
         bool treeAnim() const { return (flags2 >> 29) & 1; }
         bool decal() const { return (flags1 >> 26) & 1; }
diff --git a/components/nifosg/nifloader.cpp b/components/nifosg/nifloader.cpp
index 715c83707d..015e90f702 100644
--- a/components/nifosg/nifloader.cpp
+++ b/components/nifosg/nifloader.cpp
@@ -2472,6 +2472,12 @@ namespace NifOsg
                         }
                         break;
                     }
+                    case Nif::RC_BSShaderPPLightingProperty:
+                    {
+                        auto shaderprop = static_cast<const Nif::BSShaderPPLightingProperty*>(property);
+                        specEnabled = shaderprop->specular();
+                        break;
+                    }
                     case Nif::RC_BSLightingShaderProperty:
                     {
                         auto shaderprop = static_cast<const Nif::BSLightingShaderProperty*>(property);
@@ -2481,6 +2487,7 @@ namespace NifOsg
                         mat->setShininess(osg::Material::FRONT_AND_BACK, shaderprop->mGlossiness);
                         emissiveMult = shaderprop->mEmissiveMult;
                         specStrength = shaderprop->mSpecStrength;
+                        specEnabled = shaderprop->specular();
                         if (shaderprop->decal())
                         {
                             osg::StateSet* stateset = node->getOrCreateStateSet();