diff --git a/Makefile.am b/Makefile.am
index d87864f273154270ead1247a51f5b003fa810887..513d67bda108dd8c4d4f249bca3dd4e43b8dea11 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -483,7 +483,8 @@ check-local:
 
 .PHONY: lint
 lint: ganeti
-	pylint $(LINT_OPTS) $(lint_python_code)
+	@test -n "$(PYLINT)" || { echo 'pylint' not found during configure; exit 1; }
+	$(PYLINT) $(LINT_OPTS) $(lint_python_code)
 
 # a dist hook rule for catching revision control directories
 distcheck-hook:
diff --git a/configure.ac b/configure.ac
index 2a2ac0e0d689ed06cfe16fb7b945f736a39b9b05..ae61c60b22d7412bb23e81cd43ccdde9a2263b32 100644
--- a/configure.ac
+++ b/configure.ac
@@ -153,6 +153,14 @@ then
   AC_MSG_WARN([dot (from the graphviz suite) not found, documentation rebuild not possible])
 fi
 
+# Check for pylint
+AC_ARG_VAR(PYLINT, [pylint path])
+AC_PATH_PROG(PYLINT, [pylint], [])
+if test -z "$PYLINT"
+then
+  AC_MSG_WARN([pylint not found, checking code will not be possible])
+fi
+
 # Check for socat
 AC_ARG_VAR(SOCAT, [socat path])
 AC_PATH_PROG(SOCAT, [socat], [])