--- core-orig.py	2015-06-27 14:55:31.600063687 +0200
+++ core-modified.py	2015-06-27 14:58:22.080065775 +0200
@@ -948,7 +948,7 @@ class Device(_objfinalizer.AutoFinalized
         intf, ep = self._ctx.setup_request(self, endpoint)
         fn = fn_map[util.endpoint_type(ep.bmAttributes)]
 
-        if isinstance(size_or_buffer, array.array):
+        if not isinstance(size_or_buffer, int):
             buff = size_or_buffer
         else: # here we consider it is a integer
             buff = util.create_buffer(size_or_buffer)
@@ -960,7 +960,7 @@ class Device(_objfinalizer.AutoFinalized
                 buff,
                 self.__get_timeout(timeout))
 
-        if isinstance(size_or_buffer, array.array):
+        if not isinstance(size_or_buffer, int):
             return ret
         elif ret != len(buff) * buff.itemsize:
             return buff[:ret]
