diff --git a/vm/arch/generic/Call.c b/vm/arch/generic/Call.c
index a39b761..ae74415 100644
--- a/vm/arch/generic/Call.c
+++ b/vm/arch/generic/Call.c
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 /*
  * This uses the FFI (Foreign Function Interface) library to abstract away
  * the system-dependent stuff.  The FFI code is slower than a custom
@@ -29,12 +30,20 @@
 {
     switch (sigType) {
     case 'V': return &ffi_type_void;
+    case 'Z': return &ffi_type_uint8;
+    case 'B': return &ffi_type_sint8;
+    case 'C': return &ffi_type_uint16;
+    case 'S': return &ffi_type_sint16;
+    case 'I': return &ffi_type_sint32;
     case 'F': return &ffi_type_float;
-    case 'D': return &ffi_type_double;
     case 'J': return &ffi_type_sint64;
+    case 'D': return &ffi_type_double;
     case '[':
     case 'L': return &ffi_type_pointer;
-    default:  return &ffi_type_uint32;
+    default:
+        LOGE("bad ffitype 0x%02x\n", sigType);
+        dvmAbort();
+        return NULL;
     }
 }
 
@@ -63,7 +72,6 @@
     ffi_type* types[kMaxArgs];
     void* values[kMaxArgs];
     ffi_type* retType;
-    const char* sig;
     char sigByte;
     int srcArg, dstArg;
 
