diff --git a/Makefile b/Makefile
index 5cba0c303deb97bd891e891b1d5f3e0f33ed1d16..4752ca9cbfbce97d6344079128554cc6e164fa6c 100644
--- a/Makefile
+++ b/Makefile
@@ -17,6 +17,7 @@ clean:
 
 codecheck: $(PYSRC)
 	-echo "Running code check"
+	util/versioncheck.py
 	pyflakes $(PYSRC)
 	pylint --rcfile=.pylint $(PYSRC)
 	pep8 --repeat --ignore=$(P8IGN) $(PYSRC)
diff --git a/util/versioncheck.py b/util/versioncheck.py
new file mode 100755
index 0000000000000000000000000000000000000000..d9e54831062e2e0192ca68fdb29d62867ed673f1
--- /dev/null
+++ b/util/versioncheck.py
@@ -0,0 +1,24 @@
+#!/usr/bin/python
+
+from subprocess import check_output as co
+from sys import exit
+
+# Actually run bin/mn rather than importing via python path
+version = 'Mininet ' + co( 'PYTHONPATH=. bin/mn --version', shell=True )
+version = version.strip()
+
+# Find all Mininet path references
+lines = co( "grep -or 'Mininet \w\.\w\.\w\w*' *", shell=True )
+
+error = False
+
+for line in lines.split( '\n' ):
+    if line and 'Binary' not in line:
+        fname, fversion = line.split( ':' )
+        if version != fversion:
+            print "%s: incorrect version '%s' (should be '%s')" % (
+                fname, fversion, version )
+            error = True
+
+if error:
+    exit( 1 )