diff --git a/py/compile.c b/py/compile.c
index bb688d5..4eab094 100644
--- a/py/compile.c
+++ b/py/compile.c
@@ -15,6 +15,7 @@
 #include "obj.h"
 #include "compile.h"
 #include "runtime.h"
+#include "intdivmod.h"
 
 // TODO need to mangle __attr names
 
@@ -141,7 +142,8 @@
                         ; // pass
                     } else if (MP_PARSE_NODE_IS_TOKEN_KIND(pns->nodes[1], MP_TOKEN_OP_PERCENT)) {
                         // XXX implement this properly as Python's % operator acts differently to C's
-                        pn = mp_parse_node_new_leaf(MP_PARSE_NODE_SMALL_INT, arg0 % arg1);
+                        //pn = mp_parse_node_new_leaf(MP_PARSE_NODE_SMALL_INT, arg0 % arg1);
+                        pn = mp_parse_node_new_leaf(MP_PARSE_NODE_SMALL_INT, python_modulo(arg0, arg1));
                     } else if (MP_PARSE_NODE_IS_TOKEN_KIND(pns->nodes[1], MP_TOKEN_OP_DBL_SLASH)) {
                         // XXX implement this properly as Python's // operator acts differently to C's
                         pn = mp_parse_node_new_leaf(MP_PARSE_NODE_SMALL_INT, arg0 / arg1);
diff --git a/py/objint_mpz.c b/py/objint_mpz.c
index 21e3202..9c7727b 100644
--- a/py/objint_mpz.c
+++ b/py/objint_mpz.c
@@ -102,10 +102,13 @@
             }
             case RT_BINARY_OP_MODULO:
             case RT_BINARY_OP_INPLACE_MODULO: {
-                // TODO check that this operation matches the CPython operation
                 mpz_t quo; mpz_init_zero(&quo);
                 mpz_divmod_inpl(&quo, &res->mpz, zlhs, zrhs);
                 mpz_deinit(&quo);
+		// Check signs and do Python style modulo
+		if (zlhs->neg != zrhs->neg) {
+                    mpz_add_inpl(&res->mpz, &res->mpz, zrhs);
+                }
                 break;
             }
 
diff --git a/py/py.mk b/py/py.mk
index 0814176..add8716 100644
--- a/py/py.mk
+++ b/py/py.mk
@@ -78,6 +78,7 @@
 	vm.o \
 	showbc.o \
 	repl.o \
+	intdivmod.o \
 
 # prepend the build destination prefix to the py object files
 PY_O = $(addprefix $(PY_BUILD)/, $(PY_O_BASENAME))
diff --git a/py/runtime.c b/py/runtime.c
index 1cc1c2e..95c3a44 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -18,6 +18,7 @@
 #include "builtin.h"
 #include "objarray.h"
 #include "bc.h"
+#include "intdivmod.h"
 
 #if 0 // print debugging info
 #define DEBUG_PRINT (1)
@@ -666,10 +667,12 @@
                 case RT_BINARY_OP_INPLACE_TRUE_DIVIDE: return mp_obj_new_float((mp_float_t)lhs_val / (mp_float_t)rhs_val);
                 #endif
 
-                // TODO implement modulo as specified by Python
                 case RT_BINARY_OP_MODULO:
-                case RT_BINARY_OP_INPLACE_MODULO: lhs_val %= rhs_val; break;
-
+                case RT_BINARY_OP_INPLACE_MODULO:
+                {
+                    lhs_val = python_modulo(lhs_val, rhs_val);
+                    break;
+                }
                 case RT_BINARY_OP_POWER:
                 case RT_BINARY_OP_INPLACE_POWER:
                     if (rhs_val < 0) {
