diff --git a/Python/getargs.c b/Python/getargs.c
index 58ef2a3..50f6034 100644
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -408,7 +408,10 @@
 	
 	case 'b': { /* unsigned byte -- very short int */
 		char *p = va_arg(*p_va, char *);
-		long ival = PyInt_AsLong(arg);
+		long ival;
+		if (PyFloat_Check(arg))
+			return converterr("integer", arg, msgbuf, bufsize);
+		ival = PyInt_AsLong(arg);
 		if (ival == -1 && PyErr_Occurred())
 			return converterr("integer<b>", arg, msgbuf, bufsize);
 		else if (ival < 0) {
@@ -429,7 +432,10 @@
 	case 'B': {/* byte sized bitfield - both signed and unsigned
 		      values allowed */  
 		char *p = va_arg(*p_va, char *);
-		long ival = PyInt_AsLong(arg);
+		long ival;
+		if (PyFloat_Check(arg))
+			return converterr("integer", arg, msgbuf, bufsize);
+		ival = PyInt_AsLong(arg);
 		if (ival == -1 && PyErr_Occurred())
 			return converterr("integer<b>", arg, msgbuf, bufsize);
 		else if (ival < SCHAR_MIN) {
@@ -449,7 +455,10 @@
 	
 	case 'h': {/* signed short int */
 		short *p = va_arg(*p_va, short *);
-		long ival = PyInt_AsLong(arg);
+		long ival;
+		if (PyFloat_Check(arg))
+			return converterr("integer", arg, msgbuf, bufsize);
+		ival = PyInt_AsLong(arg);
 		if (ival == -1 && PyErr_Occurred())
 			return converterr("integer<h>", arg, msgbuf, bufsize);
 		else if (ival < SHRT_MIN) {
@@ -470,7 +479,10 @@
 	case 'H': { /* short int sized bitfield, both signed and
 		       unsigned allowed */ 
 		unsigned short *p = va_arg(*p_va, unsigned short *);
-		long ival = PyInt_AsLong(arg);
+		long ival;
+		if (PyFloat_Check(arg))
+			return converterr("integer", arg, msgbuf, bufsize);
+		ival = PyInt_AsLong(arg);
 		if (ival == -1 && PyErr_Occurred())
 			return converterr("integer<H>", arg, msgbuf, bufsize);
 		else if (ival < SHRT_MIN) {
@@ -490,7 +502,10 @@
 	
 	case 'i': {/* signed int */
 		int *p = va_arg(*p_va, int *);
-		long ival = PyInt_AsLong(arg);
+		long ival;
+		if (PyFloat_Check(arg))
+			return converterr("integer", arg, msgbuf, bufsize);
+		ival = PyInt_AsLong(arg);
 		if (ival == -1 && PyErr_Occurred())
 			return converterr("integer<i>", arg, msgbuf, bufsize);
 		else if (ival > INT_MAX) {
@@ -510,7 +525,10 @@
 
 	case 'l': {/* long int */
 		long *p = va_arg(*p_va, long *);
-		long ival = PyInt_AsLong(arg);
+		long ival;
+		if (PyFloat_Check(arg))
+			return converterr("integer", arg, msgbuf, bufsize);
+		ival = PyInt_AsLong(arg);
 		if (ival == -1 && PyErr_Occurred())
 			return converterr("integer<l>", arg, msgbuf, bufsize);
 		else
