diff --git a/src/operators.c b/src/operators.c
index 9e40ffb91f85bb8a33087e31ec31cd5ae94ae75a..5f0c741df1049193daec5175c1178fb91b0191bd 100644
--- a/src/operators.c
+++ b/src/operators.c
@@ -1571,7 +1571,13 @@ PMOD_EXPORT void f_add(INT32 args)
       pop_n_elems(args-1);
       return;
     }
-    
+    else if(args == 2 && (size == sp[-1].u.string->len))
+    {
+      stack_swap();
+      pop_stack();
+      return;
+    }
+
     tmp=sp[-args].u.string->len;
     r=new_realloc_shared_string(sp[-args].u.string,size,max_shift);
     mark_free_svalue (sp - args);