diff --git a/ext/theora/gsttheoradec.c b/ext/theora/gsttheoradec.c
index 6eef472..b2f076a 100644
--- a/ext/theora/gsttheoradec.c
+++ b/ext/theora/gsttheoradec.c
@@ -757,9 +757,7 @@ theora_handle_type_packet (GstTheoraDec * dec, ogg_packet * packet)
 
   /* calculate par
    * the info.aspect_* values reflect PAR;
-   * 0:0 is allowed and can be interpreted as 1:1, so correct for it.
-   * x:0 for other x isn't technically allowed, but it's seen in the wild and
-   * is reasonable to treat the same. 
+   * 0:x and x:0 are allowed and can be interpreted as 1:1.
    */
   if (dec->have_par) {
     /* we had a par on the sink caps, override the encoded par */
@@ -771,7 +769,7 @@ theora_handle_type_packet (GstTheoraDec * dec, ogg_packet * packet)
     par_num = dec->info.aspect_numerator;
     par_den = dec->info.aspect_denominator;
   }
-  if (par_den == 0) {
+  if (par_num == 0 || par_den == 0) {
     par_num = par_den = 1;
   }
   /* theora has:
