diff -Naur ruby-ldap-0.9.7/mod.c ruby-ldap-0.9.7-aprotim/mod.c
--- ruby-ldap-0.9.7/mod.c	2005-03-07 14:57:34.000000000 -0800
+++ ruby-ldap-0.9.7-aprotim/mod.c	2008-08-05 15:56:31.353588000 -0700
@@ -18,6 +18,7 @@
       char **svals;
       int i;
 
+      xfree(data->mod->mod_type);
       if (data->mod->mod_op & LDAP_MOD_BVALUES)
 	{
 	  bvals = data->mod->mod_vals.modv_bvals;
@@ -148,7 +149,7 @@
     return Qnil;
 
   mod_op = NUM2INT (op);
-  mod_type = StringValueCStr (type);
+  RB_LDAP_SET_STR (mod_type, type)
   Check_Type (vals, T_ARRAY);
 
   if (mod_op & LDAP_MOD_BVALUES)
