diff --git a/pym/euscan/handlers/freecode.py b/pym/euscan/handlers/freecode.py
new file mode 100644
index 0000000..ebfe852
--- /dev/null
+++ b/pym/euscan/handlers/freecode.py
@@ -0,0 +1,48 @@
+import urllib
+import re
+
+import portage
+
+from euscan import mangling, helpers, output
+
+HANDLER_NAME = "freecode"
+CONFIDENCE = 100
+PRIORITY = 90
+
+
+def can_handle(pkg, url=None):
+    return False
+
+
+def scan_pkg(pkg, options):
+    cp, ver, rev = portage.pkgsplit(pkg.cpv)
+
+    package = options['data']
+
+    output.einfo("Using FreeCode handler: " + package)
+
+    fp = urllib.urlopen("http://freecode.com/projects/%s/releases" % package)
+    content = fp.read()
+
+    result = re.findall(
+        r'([^<]+)' % package,
+        content
+    )
+
+    ret = []
+    for release_id, up_pv in result:
+        pv = mangling.mangle_version(up_pv, options)
+        if helpers.version_filtered(cp, ver, pv):
+            continue
+        fp = urllib.urlopen("http://freecode.com/projects/%s/releases/%s" %
+                            (package, release_id))
+        content = fp.read()
+        download_page = re.findall(r'