--- old/dbi_result.c	2009-05-21 19:07:09.000000000 -0400
+++ src/dbi_result.c	2009-05-23 00:25:42.000000000 -0400
@@ -891,6 +891,7 @@
 
   switch (RESULT->field_attribs[fieldidx] & DBI_INTEGER_SIZEMASK) {
   case DBI_INTEGER_SIZE1:
+    return RESULT->rows[RESULT->currowidx]->field_values[fieldidx].d_char;
   case DBI_INTEGER_SIZE2:
     return RESULT->rows[RESULT->currowidx]->field_values[fieldidx].d_short;
   case DBI_INTEGER_SIZE3:
@@ -947,7 +948,9 @@
 
   switch (RESULT->field_attribs[fieldidx] & DBI_INTEGER_SIZEMASK) {
   case DBI_INTEGER_SIZE1:
+    return RESULT->rows[RESULT->currowidx]->field_values[fieldidx].d_char;
   case DBI_INTEGER_SIZE2:
+    return RESULT->rows[RESULT->currowidx]->field_values[fieldidx].d_short;
   case DBI_INTEGER_SIZE3:
   case DBI_INTEGER_SIZE4:
     return RESULT->rows[RESULT->currowidx]->field_values[fieldidx].d_long;
@@ -995,9 +998,12 @@
 
   switch (RESULT->field_attribs[fieldidx] & DBI_INTEGER_SIZEMASK) {
   case DBI_INTEGER_SIZE1:
+    return RESULT->rows[RESULT->currowidx]->field_values[fieldidx].d_char;
   case DBI_INTEGER_SIZE2:
+    return RESULT->rows[RESULT->currowidx]->field_values[fieldidx].d_short;
   case DBI_INTEGER_SIZE3:
   case DBI_INTEGER_SIZE4:
+    return RESULT->rows[RESULT->currowidx]->field_values[fieldidx].d_long;
   case DBI_INTEGER_SIZE8:
     return RESULT->rows[RESULT->currowidx]->field_values[fieldidx].d_longlong;
   default:
