diff --git a/runtime/parsec/control/runtime_async.c b/runtime/parsec/control/runtime_async.c
index 67661a475bbeb8030327ba6ef82945ebc99f472a..24ed51bbd5690a66c3042d64fa7b7d0a7edf69d0 100644
--- a/runtime/parsec/control/runtime_async.c
+++ b/runtime/parsec/control/runtime_async.c
@@ -22,7 +22,7 @@
 int RUNTIME_sequence_create( MORSE_context_t  *morse,
                              MORSE_sequence_t *sequence )
 {
-    parsec_context_t  *parsec        = (parsec_context_t *)morse->schedopt;
+    parsec_context_t  *parsec        = (parsec_context_t *)(morse->schedopt);
     parsec_taskpool_t *parsec_dtd_tp = parsec_dtd_taskpool_new();
 
     parsec_enqueue( parsec, (parsec_taskpool_t *)parsec_dtd_tp );
@@ -39,9 +39,8 @@ int RUNTIME_sequence_create( MORSE_context_t  *morse,
 int RUNTIME_sequence_destroy( MORSE_context_t  *morse,
                               MORSE_sequence_t *sequence )
 {
-    parsec_context_t  *parsec = (parsec_context_t *)morse->schedopt;
-    parsec_taskpool_t *parsec_dtd_tp = (parsec_taskpool_t *) sequence->schedopt;
-    (void)morse;
+    parsec_context_t  *parsec = (parsec_context_t *)(morse->schedopt);
+    parsec_taskpool_t *parsec_dtd_tp = (parsec_taskpool_t *)(sequence->schedopt);
 
     assert( parsec_dtd_tp );
 
@@ -80,5 +79,6 @@ void RUNTIME_sequence_flush( MORSE_context_t  *morse,
     sequence->request = request;
     sequence->status = status;
     request->status = status;
+    (void)morse;
     return;
 }
diff --git a/runtime/parsec/control/runtime_control.c b/runtime/parsec/control/runtime_control.c
index 2063be2ceed77992c8b399c7cbf6826b36083484..9b3907b007ed46551d1245568cda3d56c1f0a058 100644
--- a/runtime/parsec/control/runtime_control.c
+++ b/runtime/parsec/control/runtime_control.c
@@ -47,6 +47,8 @@ int RUNTIME_init( MORSE_context_t *morse,
     }
 
     free(argc);
+
+    (void)ncudas;
     return hres;
 }
 
@@ -84,7 +86,7 @@ void RUNTIME_resume( MORSE_context_t *morse )
  **/
 void RUNTIME_barrier( MORSE_context_t *morse )
 {
-    parsec_context_t *parsec = (parsec_context_t*)morse->schedopt;
+    parsec_context_t *parsec = (parsec_context_t*)(morse->schedopt);
     // This will be a problem with the fake tasks inserted to detect end of DTD algorithms
     parsec_context_wait( parsec );
     return;
@@ -104,6 +106,7 @@ void RUNTIME_progress( MORSE_context_t *morse )
  **/
 int RUNTIME_thread_rank( MORSE_context_t *morse )
 {
+    (void)morse;
     return 0;
 }
 
@@ -114,6 +117,7 @@ int RUNTIME_thread_size( MORSE_context_t *morse )
 {
     // TODO: fixme
     //return vpmap_get_nb_total_threads();
+    (void)morse;
     return 1;
 }
 
diff --git a/runtime/parsec/control/runtime_descriptor.c b/runtime/parsec/control/runtime_descriptor.c
index 889391269769fe0163ed9ed2d4305f0a4fd6aa27..593ae67e7716916e94e07995d8635e8d28f1c37a 100644
--- a/runtime/parsec/control/runtime_descriptor.c
+++ b/runtime/parsec/control/runtime_descriptor.c
@@ -118,8 +118,9 @@ morse_parsec_rank_of_key(parsec_data_collection_t *data_collection, parsec_data_
 }
 
 static inline int32_t
-morse_parsec_vpid_of(parsec_data_collection_t *data_collection, ...)
+morse_parsec_vpid_of(parsec_data_collection_t *data_collection, ... )
 {
+    (void)data_collection;
     return 0;
 }
 
@@ -268,6 +269,9 @@ void RUNTIME_desc_create( MORSE_desc_t *mdesc )
 void RUNTIME_desc_destroy( MORSE_desc_t *mdesc )
 {
     morse_parsec_desc_t *pdesc = (morse_parsec_desc_t*)(mdesc->schedopt);
+    if ( pdesc == NULL ) {
+        return;
+    }
 
     if ( pdesc->data_map != NULL ) {
         parsec_data_t **data = pdesc->data_map;
@@ -286,6 +290,7 @@ void RUNTIME_desc_destroy( MORSE_desc_t *mdesc )
     parsec_dtd_data_collection_fini( (parsec_data_collection_t *)pdesc );
 
     free(pdesc);
+    mdesc->schedopt = NULL;
     return;
 }