diff --git a/_states/jenkins_security.py b/_states/jenkins_security.py
index 785c56c..aa5b9fb 100644
--- a/_states/jenkins_security.py
+++ b/_states/jenkins_security.py
@@ -143,6 +143,19 @@
     :returns: salt-specified state dict
     """
     template = __salt__['jenkins_common.load_template'](
+        'salt://jenkins/files/groovy/security.git_ssh_host_key_strategy_precheck.template',
+        __env__)
+    result = __salt__['jenkins_common.api_call']('git_ssh_host_key_strategy_precheck',
+                                                 template, ["FOUND"], {}, "")
+    if not result['result']:
+        return {
+            'name': name,
+            'changes': {},
+            'result': True,
+            'comment': 'git_ssh_host_key_strategy is not applicable for installed version of git plugin, skipping',
+        }
+
+    template = __salt__['jenkins_common.load_template'](
         'salt://jenkins/files/groovy/security.git_ssh_host_key_strategy.template',
         __env__)
     return __salt__['jenkins_common.api_call'](name, template,
diff --git a/jenkins/files/groovy/security.git_ssh_host_key_strategy_precheck.template b/jenkins/files/groovy/security.git_ssh_host_key_strategy_precheck.template
new file mode 100644
index 0000000..28ba0f5
--- /dev/null
+++ b/jenkins/files/groovy/security.git_ssh_host_key_strategy_precheck.template
@@ -0,0 +1,12 @@
+#!groovy
+// This template required to check if git plugin's classes are available (strict types sometimes painful)
+import org.jenkinsci.plugins.gitclient.verifier.*
+
+def instance = Jenkins.getInstance().getDescriptor("org.jenkinsci.plugins.gitclient.GitHostKeyVerificationConfiguration")
+
+if (instance){
+  print ("FOUND")
+}
+else {
+  print ("SKIP")
+}
\ No newline at end of file
