--- curia/mod_curia.c.orig	2011-07-24 16:00:48.000000000 +0000
+++ curia/mod_curia.c	2011-07-24 16:02:05.000000000 +0000
@@ -277,9 +277,9 @@
   FIXNUM_P(vindex);
   if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
   kbuf = STR2CSTR(vkey);
-  ksiz = RSTRING(vkey)->len;
+  ksiz = RSTRING_LEN(vkey);
   vbuf = STR2CSTR(vval);
-  vsiz = RSTRING(vval)->len;
+  vsiz = RSTRING_LEN(vval);
   FIXNUM_P(vdmode);
   dmode = FIX2INT(vdmode);
   curia = crtable[index];
@@ -298,7 +298,7 @@
   FIXNUM_P(vindex);
   if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
   kbuf = STR2CSTR(vkey);
-  ksiz = RSTRING(vkey)->len;
+  ksiz = RSTRING_LEN(vkey);
   curia = crtable[index];
   if(!crout(curia, kbuf, ksiz)){
     if(crsltable[index] && dpecode == DP_ENOITEM) return Qfalse;
@@ -317,7 +317,7 @@
   FIXNUM_P(vindex);
   if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
   kbuf = STR2CSTR(vkey);
-  ksiz = RSTRING(vkey)->len;
+  ksiz = RSTRING_LEN(vkey);
   FIXNUM_P(vstart);
   start = FIX2INT(vstart);
   FIXNUM_P(vmax);
@@ -340,7 +340,7 @@
   FIXNUM_P(vindex);
   if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC);
   kbuf = STR2CSTR(vkey);
-  ksiz = RSTRING(vkey)->len;
+  ksiz = RSTRING_LEN(vkey);
   curia = crtable[index];
   if((vsiz = crvsiz(curia, kbuf, ksiz)) == -1){
     if(crsltable[index] && dpecode == DP_ENOITEM) return INT2FIX(-1);