diff --git a/sexp.c b/sexp.c
index ba2a8f83639f5d6b5768e9701ec68e189434eb45..d066dea44d6fc930cf9722423994cdd0b04b9835 100644
--- a/sexp.c
+++ b/sexp.c
@@ -266,12 +266,16 @@ sexp_iterator_assoc(struct sexp_iterator *iterator,
 			/* We don't allow duplicates */
 			return 0;
 
+		      /* Advance to point to value */
+		      if (!sexp_iterator_next(iterator))
+			return 0;
+
 		      found[i] = 1;
 		      nfound++;
 		      
 		      /* Record this position. */
 		      values[i] = *iterator;
-
+		      
 		      break;
 		    }
 		}