diff --git a/cdist/conf/type/__timezone/gencode-remote b/cdist/conf/type/__timezone/gencode-remote
new file mode 100755
index 00000000..b4782d4b
--- /dev/null
+++ b/cdist/conf/type/__timezone/gencode-remote
@@ -0,0 +1,30 @@
+#!/bin/sh
+#
+# 2012 Steven Armstrong (steven-cdist at armstrong.cc)
+#
+# 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/>.
+#
+#
+# This type allows to configure the desired localtime timezone.
+
+timezone="$__object_id"
+os=$(cat "$__global/explorer/os")
+
+case "$os" in
+   ubuntu|debian)
+      echo "echo \"$timezone\" > /etc/timezone"
+   ;;
+esac
diff --git a/cdist/conf/type/__timezone/manifest b/cdist/conf/type/__timezone/manifest
index b0bae209..7583c9c9 100755
--- a/cdist/conf/type/__timezone/manifest
+++ b/cdist/conf/type/__timezone/manifest
@@ -1,6 +1,7 @@
 #!/bin/sh
 #
 # 2011 Ramon Salvadó (rsalvado at gnuine dot com)
+# 2012 Steven Armstrong (steven-cdist at armstrong.cc)
 #
 # This file is part of cdist.
 #
@@ -22,7 +23,25 @@
 
 timezone="$__object_id"
 
-__package tzdata --state installed
+os=$(cat "$__global/explorer/os")
+        
+not_supported() {
+   echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2
+   echo "Please contribute an implementation for it if you can." >&2
+   exit 1
+}   
+    
+case "$os" in
+   ubuntu|debian|archlinux)
+      :
+   ;;
+   *)
+      not_supported
+   ;;
+esac
+
+# same for all supported os's
+__package tzdata --state present
 require="__package/tzdata" __link /etc/localtime   \
    --source "/usr/share/zoneinfo/${timezone}"      \
    --type symbolic