diff --git a/src/modules/spider/spider.c b/src/modules/spider/spider.c
index de4e4f2c721945cc86eccbf79aa7ce4303d366dc..07c1efb110078af1eb95b39ad18b5881a425089a 100644
--- a/src/modules/spider/spider.c
+++ b/src/modules/spider/spider.c
@@ -42,7 +42,7 @@
 #include "threads.h"
 #include "operators.h"
 
-RCSID("$Id: spider.c,v 1.55 1998/06/12 19:37:40 noring Exp $");
+RCSID("$Id: spider.c,v 1.56 1998/06/26 19:47:36 grubba Exp $");
 
 #ifdef HAVE_PWD_H
 #include <pwd.h>
@@ -931,7 +931,7 @@ void do_html_parse_lines(struct pike_string *ss,
 	HANDLE_RETURN_VALUE(j+k);
 	continue;
       }
-      free_svalue(&sval1);
+      /* free_svalue(&sval1); Not needed. The type is always T_INT */
 
       /* Is it a container then? */
       mapping_index_no_free(&sval1,cont,&sval2);
@@ -972,6 +972,8 @@ void do_html_parse_lines(struct pike_string *ss,
 	apply_svalue(&sval1,4+(extra_args?extra_args->size:0));
 	HANDLE_RETURN_VALUE(m);
 	continue;
+      } else {
+	free_svalue(&sval2);
       }
       i=j;
     }