diff -ur vdr-1.3.31/recording.c vdr-1.3.31+FixSummaryHang/recording.c
--- vdr-1.3.31/recording.c	2005-08-13 16:00:48.000000000 +0200
+++ vdr-1.3.31+FixSummaryHang/recording.c	2005-09-04 14:23:35.814605968 +0200
@@ -500,6 +500,20 @@
               data[2] = data[1];
               data[1] = NULL;
               }
+	   else if (line == 2) {
+	   // if line 1 is too long, it can't be the short text,
+	   // so assume the short text is missing and concatenate
+	   // line 1 and line 2 to be the long text.
+	      size_t len1 = strlen(data[1]);
+	      if (len1 > 80) { 
+		 data[1] = (char *)realloc(data[1], len1 + 1 + strlen(data[2]) + 1);
+		 strcat(data[1], "\n");
+		 strcat(data[1], data[2]);
+		 free(data[2]);
+              	 data[2] = data[1];
+              	 data[1] = NULL;
+	         }
+	      }
            info->SetData(data[0], data[1], data[2]);
            for (int i = 0; i < 3; i ++)
                free(data[i]);
