| diff --git a/source/common/ubidiimp.h b/source/common/ubidiimp.h |
| index a5d07274..41bca38a 100644 |
| --- a/source/common/ubidiimp.h |
| +++ b/source/common/ubidiimp.h |
| @@ -198,8 +198,8 @@ typedef struct Run { |
| /* in a Run, logicalStart will get this bit set if the run level is odd */ |
| #define INDEX_ODD_BIT (1UL<<31) |
| |
| -#define MAKE_INDEX_ODD_PAIR(index, level) ((index)|((int32_t)(level)<<31)) |
| -#define ADD_ODD_BIT_FROM_LEVEL(x, level) ((x)|=((int32_t)(level)<<31)) |
| +#define MAKE_INDEX_ODD_PAIR(index, level) ((index)|((int32_t)((level)&1)<<31)) |
| +#define ADD_ODD_BIT_FROM_LEVEL(x, level) ((x)|=((int32_t)((level)&1)<<31)) |
| #define REMOVE_ODD_BIT(x) ((x)&=~INDEX_ODD_BIT) |
| |
| #define GET_INDEX(x) ((x)&~INDEX_ODD_BIT) |