diff --git a/host/filtering.py b/host/filtering.py
index 7b40c840c0f4d017049451d3b377f9e51a440861..5c7ce0bdf151370b205a92e625082285e7a778ea 100644
--- a/host/filtering.py
+++ b/host/filtering.py
@@ -1,6 +1,11 @@
 import cv2
 import numpy as np
-import trace_skeleton
+try:
+    import trace_skeleton
+    use_swig = True
+except ImportError:
+    import trace_skeleton_old
+    use_swig = False
 import skimage.morphology
 import random
 
@@ -29,8 +34,11 @@ def stroke(img):
 
     im = skimage.morphology.skeletonize(img_binary).astype(np.uint8)
 
-    rects = []
-    polys = trace_skeleton.traceSkeleton(im, 0, 0, im.shape[1], im.shape[0], 10, 999, rects)
+    if use_swig:
+        polys = trace_skeleton.from_numpy(im)
+    else:
+        rects = []
+        polys = trace_skeleton_old.traceSkeleton(im, 0, 0, im.shape[1], im.shape[0], 10, 999, rects)
 
     for l in polys:
         # c = (200 * random.random(), 200 * random.random(), 200 * random.random())