diff --git a/pi_mqtt_gpio/server.py b/pi_mqtt_gpio/server.py
index e43164de33bcdc64704da3e0f4381bca370f652b..cc47e133a7f9684c69a9d4e19acd8bba91cd598f 100644
--- a/pi_mqtt_gpio/server.py
+++ b/pi_mqtt_gpio/server.py
@@ -9,7 +9,6 @@ import threading
 from functools import reduce
 from hashlib import sha1
 from importlib import import_module
-from math import gcd
 from time import sleep, time
 
 import cerberus
@@ -20,6 +19,11 @@ from pi_mqtt_gpio import CONFIG_SCHEMA
 from pi_mqtt_gpio.modules import BASE_SCHEMA, InterruptEdge, PinDirection, PinPullup
 from pi_mqtt_gpio.scheduler import Scheduler, Task
 
+try:
+    from math import gcd
+except ImportError:
+    from fractions import gcd
+
 LOG_LEVEL_MAP = {
     mqtt.MQTT_LOG_INFO: logging.INFO,
     mqtt.MQTT_LOG_NOTICE: logging.INFO,