diff --git a/scripts/start_vm b/scripts/start_vm
index 8c696a4a..e9f13dc0 100755
--- a/scripts/start_vm
+++ b/scripts/start_vm
@@ -19,18 +19,18 @@ bb2sh() {
 start_qemu() {
     root=`echo $QEMU_DISK_ARGS \
         | sed 's,##ROOTFS_IMAGE##,'$IMAGE_DIR/$ROOTFS_IMAGE','`
-    [ -n "$KARGS$EXTRA_KARGS" ] && OPT_KERNEL_ARGS="-append $KARGS$EXTRA_KARGS"
+    [ -n "$KARGS$EXTRA_KARGS" ] && OPT_KERNEL_ARGS="-append '$KARGS$EXTRA_KARGS'"
     local had_x
     echo $- | grep -q x && had_x=1 || had_x=0
     [ $had_x -eq 0 ] && set -x
-    qemu-system-$QEMU_ARCH \
-	-m 1024M \
-	-M $QEMU_MACHINE \
-	$QCPU \
-	-nographic \
-	$EXTRA_ARGS \
-    $OPT_KERNEL_ARGS \
-	$root
+    eval qemu-system-$QEMU_ARCH \
+        -m 1024M \
+        -M $QEMU_MACHINE \
+        $QCPU \
+        -nographic \
+        $EXTRA_ARGS \
+        $OPT_KERNEL_ARGS \
+        $root
     [ $had_x -eq 0 ] && set +x
 }
 
