diff --git a/py/binary.c b/py/binary.c
index 783a48efdc9f5c44eee55485f0ee39657b44ac20..919ba8784630ab59354b51841da7b34b95c77fdb 100644
--- a/py/binary.c
+++ b/py/binary.c
@@ -58,6 +58,8 @@ int mp_binary_get_size(char struct_type, char val_type, mp_uint_t *palign) {
                     size = 4; break;
                 case 'q': case 'Q':
                     size = 8; break;
+                case 'P': case 'O': case 'S':
+                    size = sizeof(void*); break;
             }
             break;
         case '@': {