diff --git a/src/lib/builtins/echo.rs b/src/lib/builtins/echo.rs
index 45bacc25e073b82fa86dce01981b0b1f53268695..65fdbe7a7606dabf29c4d4f654ed05dee3567aa5 100644
--- a/src/lib/builtins/echo.rs
+++ b/src/lib/builtins/echo.rs
@@ -1,4 +1,5 @@
 use std::io::{self, BufWriter, Write};
+use smallvec::SmallVec;
 
 bitflags! {
     struct Flags : u8 {
@@ -10,7 +11,7 @@ bitflags! {
 
 pub(crate) fn echo(args: &[&str]) -> Result<(), io::Error> {
     let mut flags = Flags::empty();
-    let mut data: Vec<&str> = vec![];
+    let mut data: SmallVec<[&str; 16]> = SmallVec::with_capacity(16);
 
     for arg in args {
         match *arg {