diff --git a/cdist/conf/type/__apt_mark/explorer/apt_version b/cdist/conf/type/__apt_mark/explorer/apt_version
new file mode 100644
index 00000000..32a0a58f
--- /dev/null
+++ b/cdist/conf/type/__apt_mark/explorer/apt_version
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# 2016 Ander Punnar (cdist at kvlt.ee)
+#
+# This file is part of cdist.
+#
+# cdist is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# cdist is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with cdist. If not, see <http://www.gnu.org/licenses/>.
+#
+
+apt_version_is=$(dpkg-query --show --showformat '${Version}' apt)
+
+# from APT changelog:
+#   apt (0.8.14.2) UNRELEASED; urgency=low
+#   provide a 'dpkg --set-selections' wrapper to set/release holds
+
+apt_version_should=0.8.14.2
+
+dpkg --compare-versions $apt_version_should le $apt_version_is \
+    && echo 0 \
+    || echo 1
diff --git a/cdist/conf/type/__apt_mark/explorer/package_installed b/cdist/conf/type/__apt_mark/explorer/package_installed
new file mode 100644
index 00000000..c78ac3a9
--- /dev/null
+++ b/cdist/conf/type/__apt_mark/explorer/package_installed
@@ -0,0 +1,30 @@
+#!/bin/sh
+#
+# 2016 Ander Punnar (cdist at kvlt.ee)
+#
+# This file is part of cdist.
+#
+# cdist is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# cdist is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with cdist. If not, see <http://www.gnu.org/licenses/>.
+#
+
+if [ -f "$__object/parameter/name" ]; then
+    name="$(cat "$__object/parameter/name")"
+else
+    name="$__object_id"
+fi
+
+dpkg-query --show --showformat '${Status}' $name 2>/dev/null \
+    | grep -q 'ok installed' \
+    && echo 0 \
+    || echo 1
diff --git a/cdist/conf/type/__apt_mark/gencode-remote b/cdist/conf/type/__apt_mark/gencode-remote
index 14505809..c1ac58b3 100644
--- a/cdist/conf/type/__apt_mark/gencode-remote
+++ b/cdist/conf/type/__apt_mark/gencode-remote
@@ -24,6 +24,19 @@ else
     name="$__object_id"
 fi
 
+apt_version="$(cat "$__object/explorer/apt_version")"
+
+if [ "$apt_version" != '0' ]; then
+    echo 'APT version not supported' >&2
+    exit 1
+fi
+
+package_installed="$(cat "$__object/explorer/package_installed")"
+
+if [ "$package_installed" != '0' ]; then
+    exit 0
+fi
+
 state_should="$(cat "$__object/parameter/state")"
 
 state_is="$(cat "$__object/explorer/state")"
diff --git a/docs/changelog b/docs/changelog
index ea3c74c2..41fc1ca9 100644
--- a/docs/changelog
+++ b/docs/changelog
@@ -2,6 +2,7 @@ Changelog
 ---------
 
 next:
+	* Type __apt_mark: check supported apt version and if package is installed (Ander Punnar)
 	* New type: __docker (Steven Armstrong)
 	* New type: __package_dpkg (Tomas Pospisek)