diff --git a/render_povray/__init__.py b/render_povray/__init__.py
index f543672622944450bb16bd90b39fac94e2ea2b21..3edb733f5e32653acfd109a233b03f0b55f90bd9 100644
--- a/render_povray/__init__.py
+++ b/render_povray/__init__.py
@@ -320,7 +320,7 @@ def register():
     Mat.pov_photons_dispersion = FloatProperty(
             name="chromatic dispersion",
             description="Light passing through will be separated according to wavelength. This ratio of refractive indices for violet to red controls how much the colors are spread out 1 = no dispersion, good values are 1.01 to 1.1",
-            min=1.00, max=10.0, soft_min=1.00, soft_max=1.10, default=1.00)
+            min=1.0000, max=10.000, soft_min=1.0000, soft_max=1.1000, precision=4, default=1.0000)
 
     Mat.pov_photons_reflection = BoolProperty(
             name="Reflective Photon Caustics",
diff --git a/render_povray/render.py b/render_povray/render.py
index f940991d616a32d93985fecd3e9cda910fea68a4..ee227b493d1d90bb638fb37f6475d6f2c9c9339b 100644
--- a/render_povray/render.py
+++ b/render_povray/render.py
@@ -291,7 +291,7 @@ def write_pov(filename, scene=None, info_callback=None):
                 if pov_fake_caustics:
                     tabWrite("caustics %.3g\n" % material.pov_fake_caustics_power)
                 if pov_photons_refraction:
-                    tabWrite("dispersion %.3g\n" % material.pov_photons_dispersion)  # Default of 1 means no dispersion
+                    tabWrite("dispersion %.6f\n" % material.pov_photons_dispersion)  # Default of 1 means no dispersion
             #TODO
             # Other interior args
             if material.use_transparency and material.transparency_method == 'RAYTRACE':