diff --git a/src/las.c b/src/las.c
index de1da89dfffef58d27ecf42356fe695489419473..54538132dc9808e55b684f49d2fbc1ff5fb894ec 100644
--- a/src/las.c
+++ b/src/las.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: las.c,v 1.200 2000/08/31 14:16:55 grubba Exp $");
+RCSID("$Id: las.c,v 1.201 2000/08/31 21:57:13 grubba Exp $");
 
 #include "language.h"
 #include "interpret.h"
@@ -3931,13 +3931,15 @@ static void optimize(node *n)
     if(n->tree_info & (OPT_NOT_CONST|
 		       OPT_SIDE_EFFECT|
 		       OPT_EXTERNAL_DEPEND|
-		       OPT_ASSIGNMENT))
+		       OPT_ASSIGNMENT|
+		       OPT_RETURN))
     {
       if(car_is_node(n) &&
 	 !(CAR(n)->tree_info & (OPT_NOT_CONST|
 				OPT_SIDE_EFFECT|
 				OPT_EXTERNAL_DEPEND|
-				OPT_ASSIGNMENT)) &&
+				OPT_ASSIGNMENT|
+				OPT_RETURN)) &&
 	 (CAR(n)->tree_info & OPT_TRY_OPTIMIZE) &&
 	 CAR(n)->token != ':')
       {
@@ -3958,7 +3960,8 @@ static void optimize(node *n)
 	 !(CDR(n)->tree_info & (OPT_NOT_CONST|
 				OPT_SIDE_EFFECT|
 				OPT_EXTERNAL_DEPEND|
-				OPT_ASSIGNMENT)) &&
+				OPT_ASSIGNMENT|
+				OPT_RETURN)) &&
 	 (CDR(n)->tree_info & OPT_TRY_OPTIMIZE) &&
 	 CDR(n)->token != ':')
       {