diff --git a/perforate.sh b/perforate.sh
index 51769e2836645d5669b48709357a291bdda53218..cb09a713bac525cfb8703b2bc444b14b86ac20ec 100755
--- a/perforate.sh
+++ b/perforate.sh
@@ -114,15 +114,21 @@ if [ "$cmd_perforate" = "yes" ]; then
     done
     cat "$perfin" > "$perforated"
     rm "$perfin" "$perfout"
+else
+    # no perforation, just copy to perforated
+    cat "$scop" > "$perforated"
 fi
 
-if [ "$cmd_generate" = "yes" ]; then
+if [ "$cmd_generate" = "yes" ] || [ "$cmd_pluto" = "yes" ]; then
     generate "$perforated" "$pluto_input"
 fi
 
 if [ "$cmd_pluto" = "yes" ]; then
     printf "running pluto on %s output %s\n" "$pluto_input" "$output_src"
     run_pluto "$pluto_input" "$output_src"
+elif [ "$cmd_generate" = "yes" ]; then
+    # no pluto, just copy to output_src
+    cat "$pluto_input" > "$output_src"
 fi
 
 printf "input is \"%s\" output is \"%s\"\n" "$input_src" "$output_src"