diff --git a/ext/async/sqlite3async.c b/ext/async/sqlite3async.c
index 4ab39ca..b6f4a4b 100644
--- a/ext/async/sqlite3async.c
+++ b/ext/async/sqlite3async.c
@@ -1636,6 +1636,7 @@
 ** Control/configure the asynchronous IO system.
 */
 int sqlite3async_control(int op, ...){
+  int rc = SQLITE_OK;
   va_list ap;
   va_start(ap, op);
   switch( op ){
@@ -1645,7 +1646,8 @@
        && eWhen!=SQLITEASYNC_HALT_NOW
        && eWhen!=SQLITEASYNC_HALT_IDLE
       ){
-        return SQLITE_MISUSE;
+        rc = SQLITE_MISUSE;
+        break;
       }
       async.eHalt = eWhen;
       async_mutex_enter(ASYNC_MUTEX_QUEUE);
@@ -1657,7 +1659,8 @@
     case SQLITEASYNC_DELAY: {
       int iDelay = va_arg(ap, int);
       if( iDelay<0 ){
-        return SQLITE_MISUSE;
+        rc = SQLITE_MISUSE;
+        break;
       }
       async.ioDelay = iDelay;
       break;
@@ -1668,7 +1671,8 @@
       async_mutex_enter(ASYNC_MUTEX_QUEUE);
       if( async.nFile || async.pQueueFirst ){
         async_mutex_leave(ASYNC_MUTEX_QUEUE);
-        return SQLITE_MISUSE;
+        rc = SQLITE_MISUSE;
+        break;
       }
       async.bLockFiles = bLock;
       async_mutex_leave(ASYNC_MUTEX_QUEUE);
@@ -1692,9 +1696,11 @@
     }
 
     default:
-      return SQLITE_ERROR;
+      rc = SQLITE_ERROR;
+      break;
   }
-  return SQLITE_OK;
+  va_end(ap);
+  return rc;
 }
 
 #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_ASYNCIO) */
