diff --git a/src/hyperv/hyperv_driver.c b/src/hyperv/hyperv_driver.c
index 5301ec5..b022fee 100644
--- a/src/hyperv/hyperv_driver.c
+++ b/src/hyperv/hyperv_driver.c
@@ -164,7 +164,7 @@ hypervOpen(virConnectPtr conn, virConnectAuthPtr auth, unsigned int flags)
 
     /* Check if the connection can be established and if the server has the
      * Hyper-V role installed. If the call to hypervGetMsvmComputerSystemList
-     * succeeds than the connection has be established. If the returned list
+     * succeeds than the connection has been established. If the returned list
      * is empty than the server isn't a Hyper-V server. */
     virBufferAddLit(&query, MSVM_COMPUTERSYSTEM_WQL_SELECT);
     virBufferAddLit(&query, "where ");
@@ -594,13 +594,15 @@ hypervDomainResume(virDomainPtr domain)
 
 
 static int
-hypervDomainDestroy(virDomainPtr domain)
+hypervDomainDestroyFlags(virDomainPtr domain, unsigned int flags)
 {
     int result = -1;
     hypervPrivate *priv = domain->conn->privateData;
     Msvm_ComputerSystem *computerSystem = NULL;
     bool in_transition = false;
 
+    virCheckFlags(0, -1);
+
     if (hypervMsvmComputerSystemFromDomain(domain, &computerSystem) < 0) {
         goto cleanup;
     }
@@ -623,6 +625,14 @@ hypervDomainDestroy(virDomainPtr domain)
 
 
 
+static int
+hypervDomainDestroy(virDomainPtr domain)
+{
+    return hypervDomainDestroyFlags(domain, 0);
+}
+
+
+
 static char *
 hypervDomainGetOSType(virDomainPtr domain ATTRIBUTE_UNUSED)
 {
@@ -787,6 +797,8 @@ hypervDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
     Msvm_ProcessorSettingData *processorSettingData = NULL;
     Msvm_MemorySettingData *memorySettingData = NULL;
 
+    /* Flags checked by virDomainDefFormat */
+
     if (VIR_ALLOC(def) < 0) {
         virReportOOMError();
         goto cleanup;
@@ -1022,12 +1034,14 @@ hypervNumberOfDefinedDomains(virConnectPtr conn)
 
 
 static int
-hypervDomainCreate(virDomainPtr domain)
+hypervDomainCreateWithFlags(virDomainPtr domain, unsigned int flags)
 {
     int result = -1;
     hypervPrivate *priv = domain->conn->privateData;
     Msvm_ComputerSystem *computerSystem = NULL;
 
+    virCheckFlags(0, -1);
+
     if (hypervMsvmComputerSystemFromDomain(domain, &computerSystem) < 0) {
         goto cleanup;
     }
@@ -1050,6 +1064,14 @@ hypervDomainCreate(virDomainPtr domain)
 
 
 static int
+hypervDomainCreate(virDomainPtr domain)
+{
+    return hypervDomainCreateWithFlags(domain, 0);
+}
+
+
+
+static int
 hypervIsEncrypted(virConnectPtr conn)
 {
     hypervPrivate *priv = conn->privateData;
@@ -1218,6 +1240,7 @@ static virDriver hypervDriver = {
     .domainSuspend = hypervDomainSuspend, /* 0.9.5 */
     .domainResume = hypervDomainResume, /* 0.9.5 */
     .domainDestroy = hypervDomainDestroy, /* 0.9.5 */
+    .domainDestroyFlags = hypervDomainDestroyFlags, /* 0.9.5 */
     .domainGetOSType = hypervDomainGetOSType, /* 0.9.5 */
     .domainGetInfo = hypervDomainGetInfo, /* 0.9.5 */
     .domainGetState = hypervDomainGetState, /* 0.9.5 */
@@ -1225,6 +1248,7 @@ static virDriver hypervDriver = {
     .listDefinedDomains = hypervListDefinedDomains, /* 0.9.5 */
     .numOfDefinedDomains = hypervNumberOfDefinedDomains, /* 0.9.5 */
     .domainCreate = hypervDomainCreate, /* 0.9.5 */
+    .domainCreateWithFlags = hypervDomainCreateWithFlags, /* 0.9.5 */
     .isEncrypted = hypervIsEncrypted, /* 0.9.5 */
     .isSecure = hypervIsSecure, /* 0.9.5 */
     .domainIsActive = hypervDomainIsActive, /* 0.9.5 */
