diff --git a/cdist/conf/type/__git/man.text b/cdist/conf/type/__git/man.text
index 7c6b83cd..5f74108b 100644
--- a/cdist/conf/type/__git/man.text
+++ b/cdist/conf/type/__git/man.text
@@ -26,6 +26,7 @@ state::
 
 branch::
     Create this branch by checking out the remote branch of this name
+    Default branch is "master"
 
 group::
    Group to chgrp to.
diff --git a/cdist/conf/type/__jail/man.text b/cdist/conf/type/__jail/man.text
index b439e0f5..9c968d84 100644
--- a/cdist/conf/type/__jail/man.text
+++ b/cdist/conf/type/__jail/man.text
@@ -16,7 +16,7 @@ This type is used on FreeBSD to manage jails.
 REQUIRED PARAMETERS
 -------------------
 state::
-   Either "present" or "absent."
+   Either "present" or "absent", defaults to "present".
 
 jailbase::
    The location of the .tgz archive containing the base fs for your jails.
diff --git a/cdist/conf/type/__jail/parameter/default/state b/cdist/conf/type/__jail/parameter/default/state
new file mode 100644
index 00000000..e7f6134f
--- /dev/null
+++ b/cdist/conf/type/__jail/parameter/default/state
@@ -0,0 +1 @@
+present
diff --git a/cdist/conf/type/__jail/parameter/optional b/cdist/conf/type/__jail/parameter/optional
index 08ecd469..b36f0fa5 100644
--- a/cdist/conf/type/__jail/parameter/optional
+++ b/cdist/conf/type/__jail/parameter/optional
@@ -5,3 +5,4 @@ interface
 devfs-ruleset
 jaildir
 jailbase
+state
diff --git a/cdist/conf/type/__pf_ruleset/man.text b/cdist/conf/type/__pf_ruleset/man.text
index 0dc07f71..29efe065 100644
--- a/cdist/conf/type/__pf_ruleset/man.text
+++ b/cdist/conf/type/__pf_ruleset/man.text
@@ -16,7 +16,7 @@ This type is used on *BSD systems to manage the pf firewall's ruleset.
 REQUIRED PARAMETERS
 -------------------
 state::
-   Either "absent" (no ruleset at all) or "present"
+   Either "absent" (no ruleset at all) or "present", defaults to "present".
 
 
 OPTIONAL PARAMETERS
diff --git a/cdist/conf/type/__pf_ruleset/parameter/default/state b/cdist/conf/type/__pf_ruleset/parameter/default/state
new file mode 100644
index 00000000..e7f6134f
--- /dev/null
+++ b/cdist/conf/type/__pf_ruleset/parameter/default/state
@@ -0,0 +1 @@
+present
diff --git a/cdist/conf/type/__pf_ruleset/parameter/optional b/cdist/conf/type/__pf_ruleset/parameter/optional
index 5a18cd2f..d77f3048 100644
--- a/cdist/conf/type/__pf_ruleset/parameter/optional
+++ b/cdist/conf/type/__pf_ruleset/parameter/optional
@@ -1 +1,2 @@
 source
+state
diff --git a/cdist/conf/type/__postgres_database/gencode-remote b/cdist/conf/type/__postgres_database/gencode-remote
index 0ffc842a..c097efce 100755
--- a/cdist/conf/type/__postgres_database/gencode-remote
+++ b/cdist/conf/type/__postgres_database/gencode-remote
@@ -19,8 +19,7 @@
 #
 
 name="$__object_id"
-state_should="present"
-[ -f "$__object/parameter/state" ] && state_should="$(cat "$__object/parameter/state")"
+state_should="$(cat "$__object/parameter/state")"
 state_is="$(cat "$__object/explorer/state")"
 
 if [ "$state_should" != "$state_is" ]; then
diff --git a/cdist/conf/type/__postgres_database/man.text b/cdist/conf/type/__postgres_database/man.text
index 88259b6f..c7c0d3cd 100644
--- a/cdist/conf/type/__postgres_database/man.text
+++ b/cdist/conf/type/__postgres_database/man.text
@@ -16,7 +16,7 @@ This cdist type allows you to create or drop postgres databases.
 OPTIONAL PARAMETERS
 -------------------
 state::
-   either 'present' or 'absent'
+   either 'present' or 'absent', defaults to 'present'.
 
 owner::
    the role owning this database
diff --git a/cdist/conf/type/__postgres_database/parameter/default/state b/cdist/conf/type/__postgres_database/parameter/default/state
new file mode 100644
index 00000000..e7f6134f
--- /dev/null
+++ b/cdist/conf/type/__postgres_database/parameter/default/state
@@ -0,0 +1 @@
+present
diff --git a/cdist/conf/type/__postgres_role/gencode-remote b/cdist/conf/type/__postgres_role/gencode-remote
index 65a9d588..0230e48e 100755
--- a/cdist/conf/type/__postgres_role/gencode-remote
+++ b/cdist/conf/type/__postgres_role/gencode-remote
@@ -20,8 +20,7 @@
 
 name="$__object_id"
 state_is="$(cat "$__object/explorer/state")"
-state_should="present"
-[ -f "$__object/parameter/state" ] && state_should="$(cat "$__object/parameter/state")"
+state_should="$(cat "$__object/parameter/state")"
 
 [ "$state_is" = "$state_should" ] && exit 0
 
diff --git a/cdist/conf/type/__postgres_role/parameter/default/state b/cdist/conf/type/__postgres_role/parameter/default/state
new file mode 100644
index 00000000..e7f6134f
--- /dev/null
+++ b/cdist/conf/type/__postgres_role/parameter/default/state
@@ -0,0 +1 @@
+present
diff --git a/cdist/conf/type/__rvm/man.text b/cdist/conf/type/__rvm/man.text
index c1f83e60..0408d125 100644
--- a/cdist/conf/type/__rvm/man.text
+++ b/cdist/conf/type/__rvm/man.text
@@ -16,7 +16,7 @@ RVM is the Ruby enVironment Manager for the Ruby programming language.
 REQUIRED PARAMETERS
 -------------------
 state::
-    Either "present" or "absent".
+    Either "present" or "absent", defaults to "present".
 
 
 EXAMPLES
diff --git a/cdist/conf/type/__rvm/parameter/default/state b/cdist/conf/type/__rvm/parameter/default/state
new file mode 100644
index 00000000..e7f6134f
--- /dev/null
+++ b/cdist/conf/type/__rvm/parameter/default/state
@@ -0,0 +1 @@
+present
diff --git a/cdist/conf/type/__jail/parameter/required b/cdist/conf/type/__rvm/parameter/optional
similarity index 100%
rename from cdist/conf/type/__jail/parameter/required
rename to cdist/conf/type/__rvm/parameter/optional
diff --git a/cdist/conf/type/__rvm_gem/man.text b/cdist/conf/type/__rvm_gem/man.text
index 2b72e7ae..d7eff3be 100644
--- a/cdist/conf/type/__rvm_gem/man.text
+++ b/cdist/conf/type/__rvm_gem/man.text
@@ -20,7 +20,7 @@ user::
 gemset::
     The gemset to use
 state::
-    Either "present" or "absent"
+    Either "present" or "absent", defaults to "present".
 
 OPTIONAL PARAMETERS
 -------------------
diff --git a/cdist/conf/type/__rvm_gem/parameter/default/state b/cdist/conf/type/__rvm_gem/parameter/default/state
new file mode 100644
index 00000000..e7f6134f
--- /dev/null
+++ b/cdist/conf/type/__rvm_gem/parameter/default/state
@@ -0,0 +1 @@
+present
diff --git a/cdist/conf/type/__rvm_gem/parameter/optional b/cdist/conf/type/__rvm_gem/parameter/optional
index 4ad96d51..96983811 100644
--- a/cdist/conf/type/__rvm_gem/parameter/optional
+++ b/cdist/conf/type/__rvm_gem/parameter/optional
@@ -1 +1,2 @@
 default
+state
diff --git a/cdist/conf/type/__rvm_gem/parameter/required b/cdist/conf/type/__rvm_gem/parameter/required
index 75f60bb8..58243a95 100644
--- a/cdist/conf/type/__rvm_gem/parameter/required
+++ b/cdist/conf/type/__rvm_gem/parameter/required
@@ -1,3 +1,2 @@
-state
 gemset
 user
diff --git a/cdist/conf/type/__rvm_gemset/man.text b/cdist/conf/type/__rvm_gemset/man.text
index 44c0c555..e85425f3 100644
--- a/cdist/conf/type/__rvm_gemset/man.text
+++ b/cdist/conf/type/__rvm_gemset/man.text
@@ -18,7 +18,7 @@ REQUIRED PARAMETERS
 user::
     The remote user account to use
 state::
-    Either "present" or "absent".
+    Either "present" or "absent", defaults to "present".
 
 BOOLEAN PARAMETERS
 -------------------
diff --git a/cdist/conf/type/__rvm_gemset/parameter/default/state b/cdist/conf/type/__rvm_gemset/parameter/default/state
new file mode 100644
index 00000000..e7f6134f
--- /dev/null
+++ b/cdist/conf/type/__rvm_gemset/parameter/default/state
@@ -0,0 +1 @@
+present
diff --git a/cdist/conf/type/__pf_ruleset/parameter/required b/cdist/conf/type/__rvm_gemset/parameter/optional
similarity index 100%
rename from cdist/conf/type/__pf_ruleset/parameter/required
rename to cdist/conf/type/__rvm_gemset/parameter/optional
diff --git a/cdist/conf/type/__rvm_gemset/parameter/required b/cdist/conf/type/__rvm_gemset/parameter/required
index 5aea6f1e..4eb8387f 100644
--- a/cdist/conf/type/__rvm_gemset/parameter/required
+++ b/cdist/conf/type/__rvm_gemset/parameter/required
@@ -1,2 +1 @@
-state
 user
diff --git a/cdist/conf/type/__rvm_ruby/man.text b/cdist/conf/type/__rvm_ruby/man.text
index dbbab85e..6419a4d4 100644
--- a/cdist/conf/type/__rvm_ruby/man.text
+++ b/cdist/conf/type/__rvm_ruby/man.text
@@ -18,7 +18,7 @@ REQUIRED PARAMETERS
 user::
     The remote user account to use
 state::
-    Either "present" or "absent".
+    Either "present" or "absent", defaults to "present".
 
 BOOLEAN PARAMETERS
 ------------------
diff --git a/cdist/conf/type/__rvm_ruby/parameter/default/state b/cdist/conf/type/__rvm_ruby/parameter/default/state
new file mode 100644
index 00000000..e7f6134f
--- /dev/null
+++ b/cdist/conf/type/__rvm_ruby/parameter/default/state
@@ -0,0 +1 @@
+present
diff --git a/cdist/conf/type/__rvm/parameter/required b/cdist/conf/type/__rvm_ruby/parameter/optional
similarity index 100%
rename from cdist/conf/type/__rvm/parameter/required
rename to cdist/conf/type/__rvm_ruby/parameter/optional
diff --git a/cdist/conf/type/__rvm_ruby/parameter/required b/cdist/conf/type/__rvm_ruby/parameter/required
index 5aea6f1e..4eb8387f 100644
--- a/cdist/conf/type/__rvm_ruby/parameter/required
+++ b/cdist/conf/type/__rvm_ruby/parameter/required
@@ -1,2 +1 @@
-state
 user
diff --git a/cdist/emulator.py b/cdist/emulator.py
index 5b706220..5c062a7f 100644
--- a/cdist/emulator.py
+++ b/cdist/emulator.py
@@ -189,7 +189,8 @@ class Emulator(object):
     def record_requirements(self):
         """record requirements"""
 
-        if "CDIST_ORDER_DEPENDENCY" in self.env:
+        # Inject the predecessor, but not if its an override (this would leed to an circular dependency)
+        if "CDIST_ORDER_DEPENDENCY" in self.env and not 'CDIST_OVERRIDE' in self.env:
             # load object name created bevor this one from typeorder file ...
             with open(self.typeorder_path, 'r') as typecreationfile:
                 typecreationorder = typecreationfile.readlines()
diff --git a/cdist/test/cdist_object/__init__.py b/cdist/test/cdist_object/__init__.py
index 28f2455b..3c25a959 100644
--- a/cdist/test/cdist_object/__init__.py
+++ b/cdist/test/cdist_object/__init__.py
@@ -49,7 +49,7 @@ class ObjectClassTestCase(test.CdistTestCase):
 
         self.expected_objects = []
         for cdist_object_name in self.expected_object_names:
-            cdist_type, cdist_object_id = cdist_object_name.split("/", maxsplit=1)
+            cdist_type, cdist_object_id = cdist_object_name.split("/", 1)
             cdist_object = core.CdistObject(core.CdistType(type_base_path, cdist_type), object_base_path, cdist_object_id)
             self.expected_objects.append(cdist_object)
  
diff --git a/cdist/test/fixtures/remote/copy b/cdist/test/fixtures/remote/copy
index a4627716..05f43eb1 100755
--- a/cdist/test/fixtures/remote/copy
+++ b/cdist/test/fixtures/remote/copy
@@ -1,7 +1,7 @@
 #!/bin/sh
 #
 # 2012-2013 Nico Schottelius (nico-cdist schottelius.org)
-# 2013 Steven Armstrong (steven-cdist armstrong.cc)
+# 2013-2014 Steven Armstrong (steven-cdist armstrong.cc)
 #
 # This file is part of cdist.
 #
@@ -20,4 +20,4 @@
 #
 
 code="$(echo "$@" | sed "s|\([[:space:]]\)$__target_host:|\1|g")"
-cp --dereference $code
+cp -L $code
diff --git a/docs/changelog b/docs/changelog
index d504e949..00d2734e 100644
--- a/docs/changelog
+++ b/docs/changelog
@@ -9,8 +9,19 @@ Changelog
 	* Core: Integrate initial preos support
 
 
-3.0.9:
+3.0.9: 2014-02-14
+	* Core: Ignore order dependencies if override is set (Daniel Heule)
+	* Core: Improve Mac OS X support for unit tests (Steven Armstrong)
 	* Type __locale: Error out in case of unsupported OS
+	* Type __jail: Use default parameters for state (Daniel Heule)
+	* Type __pf_ruleset: Use default parameters for state (Daniel Heule)
+	* Type __postgres_database: Use default parameters for state (Daniel Heule)
+	* Type __postgres_role: Use default parameters for state (Daniel Heule)
+	* Type __rvm: Use default parameters for state (Daniel Heule)
+	* Type __rvm_gem: Use default parameters for state (Daniel Heule)
+	* Type __rvm_gemset: Use default parameters for state (Daniel Heule)
+	* Type __rvm_ruby: Use default parameters for state (Daniel Heule)
+
 
 3.0.8: 2014-02-11
 	* Core: Enhance object id verification (Daniel Heule)
diff --git a/docs/man/cdist-reference.text.sh b/docs/man/cdist-reference.text.sh
index 88a002df..62614c55 100755
--- a/docs/man/cdist-reference.text.sh
+++ b/docs/man/cdist-reference.text.sh
@@ -236,7 +236,7 @@ The following environment variables influence the behaviour of cdist:
 require::
     Setup dependencies between objects (see cdist-manifest(7))
 
-CDIST_ALLOW_OVERRIDE::
+CDIST_OVERRIDE::
     Allow overwriting type parameters (see cdist-manifest(7))
 
 CDIST_ORDER_DEPENDENCY::
diff --git a/docs/man/man7/cdist-manifest.text b/docs/man/man7/cdist-manifest.text
index 25637242..057905ea 100644
--- a/docs/man/man7/cdist-manifest.text
+++ b/docs/man/man7/cdist-manifest.text
@@ -152,6 +152,10 @@ ATTENTION: Only use this feature if you are 100% sure in which order
 cdist encounter the affected objects, otherwhise this results 
 into an undefined situation. 
 
+If CDIST_OVERRIDE and CDIST_ORDER_DEPENDENCY is set for an object,
+CDIST_ORDER_DEPENDENCY will be ignored, because adding a dependency in case of
+overrides would result in circular dependencies, which is an error.
+
 THIS IS A BETA FEATURE AND MAY BE REMOVED OR CHANGED AT ANY TIME.