diff --git a/modules/demux/subtitle.c b/modules/demux/subtitle.c
index d113df5d5c73f49bec9adac133f3ca99bcc37c4e..bb58034bef07e8d6cb5643ec393528c7b26c388f 100644
--- a/modules/demux/subtitle.c
+++ b/modules/demux/subtitle.c
@@ -1761,22 +1761,14 @@ static int ParseMPSub( vlc_object_t *p_obj, subs_properties_t *p_props,
             }
             else
             {
-                char *psz_temp = malloc( strlen(psz_format) + 1 );
-                if( !psz_temp )
+                float f_fps;
+                if( sscanf( psz_format, "%f", &f_fps ) == 1 )
                 {
-                    return VLC_ENOMEM;
-                }
-
-                if( sscanf( psz_format, "%[^\r\n]", psz_temp ) )
-                {
-                    float f_fps = vlc_strtof_c( psz_temp, NULL );
-
                     if( f_fps > 0.f && var_GetFloat( p_obj, "sub-original-fps" ) <= 0.f )
                         var_SetFloat( p_obj, "sub-original-fps", f_fps );
 
                     p_props->mpsub.i_factor = 1;
                 }
-                free( psz_temp );
             }
         }
     }