diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 4928695393..104ad31f8a 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -555,6 +555,9 @@ libxlVmStart(libxlDriverPrivatePtr driver, virDomainObjPtr vm,
     int managed_save_fd = -1;
     libxlDomainObjPrivatePtr priv = vm->privateData;
     libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
+#ifdef LIBXL_HAVE_DOMAIN_CREATE_RESTORE_PARAMS
+    libxl_domain_restore_params params;
+#endif
 
     if (libxlDomainObjPrivateInitCtx(vm) < 0)
         goto error;
@@ -619,8 +622,14 @@ libxlVmStart(libxlDriverPrivatePtr driver, virDomainObjPtr vm,
         ret = libxl_domain_create_new(priv->ctx, &d_config,
                                       &domid, NULL, NULL);
     else
+#ifdef LIBXL_HAVE_DOMAIN_CREATE_RESTORE_PARAMS
+        params.checkpointed_stream = 0;
+        ret = libxl_domain_create_restore(priv->ctx, &d_config, &domid,
+                                          restore_fd, &params, NULL, NULL);
+#else
         ret = libxl_domain_create_restore(priv->ctx, &d_config, &domid,
                                           restore_fd, NULL, NULL);
+#endif
 
     if (ret) {
         if (restore_fd < 0)