diff --git a/bin/cdist-object-codegen b/bin/cdist-object-codegen
index 59d73674..6a8549f3 100755
--- a/bin/cdist-object-codegen
+++ b/bin/cdist-object-codegen
@@ -44,15 +44,11 @@ gencode="$(__cdist_type_gencode "$__cdist_type")"
 
 cd "$__cdist_object_dir"
 
-# Call gencode of type with __cdist_object
-if [ -x "$gencode" ]; then
-   # Prepend header to each script
-   cat << eof
+cat << eof
 #
-# Code imported from $gencode
+# The following code is imported from output of $gencode
 #
 
 eof
 
-   __cdist_exec_fail_on_error "$gencode" "$__cdist_object_id"
-fi
+[ -x "$gencode" ] || __cdist_exec_fail_on_error "$gencode" "$__cdist_object_id"
diff --git a/conf/types/__file/gencode b/conf/types/__file/gencode
index b95e52a5..9d585533 100755
--- a/conf/types/__file/gencode
+++ b/conf/types/__file/gencode
@@ -22,13 +22,14 @@
 # example for typewrites later
 #
 
-. cdist-config
-
-pwd -P >&2
-ls >&2
-
 type="$(cat type)"
-path="$(cat destination)"
+
+# If destination was specified, do not use the id
+if [ -f destination ]; then
+   destination="$(cat destination)"
+else
+   destination="$1"
+fi
 
 case "$type" in
    directory)
@@ -43,7 +44,6 @@ case "$type" in
       echo "Unsupported type: \"$type\"" >&2
       exit 1
    ;;
-
 esac
 
 if [ -f mode ]; then