diff --git a/plugins/getopts/getopts.fish b/plugins/getopts/getopts.fish
index 00ea722eccfa5a3923badf7f493f059a00c8d316..c8021cec7ea3516772907103f243b565a12fcceb 100644
--- a/plugins/getopts/getopts.fish
+++ b/plugins/getopts/getopts.fish
@@ -122,7 +122,7 @@
 #   → http://pubs.opengroup.org/onlinepubs/7908799/xbd/utilconv.html
 #
 # AUTHORS
-#   Jorge Bucaran <@bucaran>
+#   Jorge Bucaran <jbucaran@me.com>
 #/
 function getopts
   # Currently supported return success/error conditions.
@@ -154,7 +154,7 @@ function getopts
 
     # Trim option string and collect required / optional options.
     if [ -n "$__getopts_optstr" ]
-      set __getopts_optstr (printf $__getopts_optstr | tr '[:space:]' \n)
+      set __getopts_optstr (printf $__getopts_optstr | tr -s '[:space:]' \n)
 
       # Setting the first token of the option string to `:` enables
       # strict mode. This causes getopts to abort the process if an
diff --git a/plugins/getopts/getopts.spec.fish b/plugins/getopts/getopts.spec.fish
index da6b82202b2421f333505293430a4859daffb321..7d42568aec874dc3bcb69d3145bdb6648d0b912f 100644
--- a/plugins/getopts/getopts.spec.fish
+++ b/plugins/getopts/getopts.spec.fish
@@ -137,6 +137,14 @@ function describe_getotps -d "fish getopts"
     expect (__getopts $options $args) --to-equal \
       "xyz(777)Abc(100)longlong-req(32)long-opt(!!!)D O N E"
   end
+
+  function it_handles_multiline_option_strings
+    set -l multiline_options "a:aaa
+                              b:bbb
+                              c:ccc
+                              d:ddd"
+    expect (__getopts $multiline_options -dcbabcd) --to-equal "dcbabcd"
+  end
 end
 
 spec.run $argv