diff --git a/src/svalue.c b/src/svalue.c
index f88a5a61171bbaf22427b40bf22fcf0872590ab3..31261d67b5a09df260ac890a92a4d46045887470 100644
--- a/src/svalue.c
+++ b/src/svalue.c
@@ -186,7 +186,7 @@ void assign_svalues_no_free(struct svalue *to,
 
   if(((type_hint & (BIT_INT | BIT_FLOAT))==0))
   {
-    while(--num > 0)
+    while(--num >= 0)
     {
       struct svalue tmp;
       tmp=*(from++);