diff --git a/modules/codec/ttml/ttml.c b/modules/codec/ttml/ttml.c
index 6236f02df2f19c9e727dc21d6a609a0c6ab249c1..76d1b887c5116b5717c0170290728f5f9e7f2c4f 100644
--- a/modules/codec/ttml/ttml.c
+++ b/modules/codec/ttml/ttml.c
@@ -129,7 +129,7 @@ const char * tt_namespaces_GetPrefix( const tt_namespaces_t *nss,
 void tt_namespaces_Register( tt_namespaces_t *nss, const char *psz_prefix,
                              const char *psz_uri )
 {
-    if( tt_namespaces_GetPrefix( nss, psz_uri ) )
+    if( !psz_uri || tt_namespaces_GetPrefix( nss, psz_uri ) )
         return;
     struct tt_namespace_s *ns = malloc(sizeof(*ns));
     if( ns )
diff --git a/modules/demux/ttml.c b/modules/demux/ttml.c
index a9352477f348af64ac5c4de5bfe0de2f6a5dc599..17d2961ad20821f610bcc43eb21b4cf35d13a19c 100644
--- a/modules/demux/ttml.c
+++ b/modules/demux/ttml.c
@@ -174,7 +174,7 @@ static int ReadTTML( demux_t* p_demux )
                 break;
 
             case XML_READER_STARTELEM:
-                if( strcmp( psz_node_namespace, TT_NS ) ||
+                if( (psz_node_namespace && strcmp( psz_node_namespace, TT_NS )) ||
                     strcmp( tt_LocalName( psz_node_name ), "tt" ) ||
                     p_sys->p_rootnode != NULL )
                     return VLC_EGENERIC;