diff --git a/src/encode.c b/src/encode.c
index f48af511dfcdaf8ff11e5042c8eb12d547764279..e255e1b21eb16a00e8be6a420a97c1fe566713fc 100644
--- a/src/encode.c
+++ b/src/encode.c
@@ -25,7 +25,7 @@
 #include "version.h"
 #include "bignum.h"
 
-RCSID("$Id: encode.c,v 1.45 1999/11/03 23:53:15 grubba Exp $");
+RCSID("$Id: encode.c,v 1.46 1999/11/04 20:03:20 hubbe Exp $");
 
 /* #define ENCODE_DEBUG */
 
@@ -1147,7 +1147,7 @@ static void decode_value2(struct decode_data *data)
 	    stack_swap();
 	    f_index(2);
 	  }
-	  if(data->pickyness && sp[-1].type != T_PROGRAM) {
+	  if(data->pickyness && !program_from_svalue(sp-1)) {
 	    if ((prog_code->type == T_STRING) &&
 		(prog_code->u.string->len < 128) &&
 		(!prog_code->u.string->size_shift)) {