diff --git a/src/pe/vtk/EllipsoidVtkOutput.h b/src/pe/vtk/EllipsoidVtkOutput.h
index 680410dcea6377fa1eadd83f64664df7f1acb4ba..767c1b9783d47bac4a11b32401f082067346cee1 100644
--- a/src/pe/vtk/EllipsoidVtkOutput.h
+++ b/src/pe/vtk/EllipsoidVtkOutput.h
@@ -72,7 +72,14 @@ void EllipsoidVtkOutput::push( std::ostream& os, const uint_t data, const uint_t
    switch( data )
    {
    case 0:
-      vtk::toStream( os, numeric_cast< float >(bodies_.at( point )->getMass()) );
+      if( bodies_.at( point )->hasInfiniteMass() )
+      {
+         vtk::toStream( os, std::numeric_limits< float >::infinity() );
+      }
+      else
+      {
+         vtk::toStream( os, numeric_cast< float >(bodies_.at( point )->getMass()) );
+      }
       break;
    case 1:
       vtk::toStream( os, numeric_cast< float >(tensorGlyphs_.at(point)[component]) );
@@ -103,7 +110,14 @@ void EllipsoidVtkOutput::push( vtk::Base64Writer& b64, const uint_t data, const
    switch( data )
    {
    case 0:
-      b64 << numeric_cast< float >(bodies_.at( point )->getMass());
+      if( bodies_.at( point )->hasInfiniteMass() )
+      {
+         b64 << std::numeric_limits< float >::infinity();
+      }
+      else
+      {
+         b64 << numeric_cast< float >(bodies_.at( point )->getMass());
+      }
       break;
    case 1:
       b64 << numeric_cast< float >(tensorGlyphs_.at(point)[component]);
diff --git a/src/pe/vtk/SphereVtkOutput.h b/src/pe/vtk/SphereVtkOutput.h
old mode 100644
new mode 100755
index 1878795f32bab639db91289edf4318c57e019d5c..25290f2265b69b5986384052cb73dcfe2f282c74
--- a/src/pe/vtk/SphereVtkOutput.h
+++ b/src/pe/vtk/SphereVtkOutput.h
@@ -73,7 +73,14 @@ void SphereVtkOutput::push( std::ostream& os, const uint_t data, const uint_t po
    switch( data )
    {
    case 0:
-      vtk::toStream( os, numeric_cast< float >(bodies_.at( point )->getMass()) );
+      if( bodies_.at( point )->hasInfiniteMass() )
+      {
+         vtk::toStream( os, std::numeric_limits< float >::infinity() );
+      }
+      else
+      {
+         vtk::toStream( os, numeric_cast< float >(bodies_.at( point )->getMass()) );
+      }
       break;
    case 1:
       vtk::toStream( os, numeric_cast< float >(bodies_.at( point )->getRadius()) );
@@ -107,7 +114,14 @@ void SphereVtkOutput::push( vtk::Base64Writer& b64, const uint_t data, const uin
    switch( data )
    {
    case 0:
-      b64 << numeric_cast< float >(bodies_.at( point )->getMass());
+      if( bodies_.at( point )->hasInfiniteMass() )
+      {
+         b64 << std::numeric_limits< float >::infinity();
+      }
+      else
+      {
+         b64 << numeric_cast< float >(bodies_.at( point )->getMass());
+      }
       break;
    case 1:
       b64 << numeric_cast< float >(bodies_.at( point )->getRadius());