diff --git a/src/modules/spider/spider.c b/src/modules/spider/spider.c
index c687c73cfea78ef361412b55c052973d342877a3..0bef4aa2433b995ac6e84533c58478bcf47b496e 100644
--- a/src/modules/spider/spider.c
+++ b/src/modules/spider/spider.c
@@ -43,7 +43,7 @@
 #include "threads.h"
 #include "operators.h"
 
-RCSID("$Id: spider.c,v 1.57 1998/02/20 03:19:41 per Exp $");
+RCSID("$Id: spider.c,v 1.58 1998/02/20 03:23:35 per Exp $");
 
 #ifdef HAVE_PWD_H
 #include <pwd.h>
@@ -834,7 +834,6 @@ void do_html_parse(struct pike_string *ss,
 
 #define HANDLE_RETURN_VALUE() do {		\
   free_svalue(&sval1);                          \
-  free_svalue(&sval2); 			        \
   if (sp[-1].type==T_STRING)			\
   {						\
     PARSE_RECURSE();				\
@@ -925,6 +924,7 @@ void do_html_parse_lines(struct pike_string *ss,
 	}
 	apply_svalue(&sval1,3+(extra_args?extra_args->size:0));
 	HANDLE_RETURN_VALUE();
+	continue;
       }
       free_svalue(&sval1);
 
@@ -963,6 +963,7 @@ void do_html_parse_lines(struct pike_string *ss,
 	}
 	apply_svalue(&sval1,4+(extra_args?extra_args->size:0));
 	HANDLE_RETURN_VALUE();
+	continue;
       }
       i=j;
     }