diff --git a/spm.c b/spm.c
index 1a662a70322cf83b7dc9efc301ee2544925364bf..c654fefc6fd2e6e06c405ad2ea5a89b5fbbbf538 100644
--- a/spm.c
+++ b/spm.c
@@ -1397,17 +1397,17 @@ spmCheckAxb( pastix_int_t nrhs,
  *
  *******************************************************************************/
 void
-spmScalMatrix(const pastix_complex64_t alpha, pastix_spm_t* spm)
+spmScalMatrix(const double alpha, pastix_spm_t* spm)
 {
     switch(spm->flttype)
     {
     case PastixPattern:
         break;
     case PastixFloat:
-        s_spmScal(alpha, spm);
+        s_spmScal((float)alpha, spm);
         break;
     case PastixComplex32:
-        c_spmScal(alpha, spm);
+        c_spmScal((float)alpha, spm);
         break;
     case PastixComplex64:
         z_spmScal(alpha, spm);
@@ -1445,10 +1445,10 @@ spmScalVector(const double alpha, pastix_spm_t* spm, void *x)
     case PastixPattern:
         break;
     case PastixFloat:
-        cblas_sscal(spm->n, alpha, x, 1);
+        cblas_sscal(spm->n, (float)alpha, x, 1);
         break;
     case PastixComplex32:
-        cblas_csscal(spm->n, alpha, x, 1);
+        cblas_csscal(spm->n, (float)alpha, x, 1);
         break;
     case PastixComplex64:
         cblas_zdscal(spm->n, alpha, x, 1);
diff --git a/spm.h b/spm.h
index d763b9214679aa006c720c5e2070f2b0c331f6e7..6d547bf792d0372cfd205ddd7cd1499ed0c74d45 100644
--- a/spm.h
+++ b/spm.h
@@ -105,7 +105,7 @@ void          spmGenFakeValues( pastix_spm_t *spm );
  */
 double        spmNorm( pastix_normtype_t ntype, const pastix_spm_t *spm );
 int           spmMatVec( pastix_trans_t trans, const void *alpha, const pastix_spm_t *spm, const void *x, const void *beta, void *y );
-void          spmScalMatrix( const pastix_complex64_t alpha, pastix_spm_t *spm );
+void          spmScalMatrix( const double alpha, pastix_spm_t *spm );
 void          spmScalVector( const double alpha, pastix_spm_t *spm, void *x );
 
 /**
diff --git a/z_spm.h b/z_spm.h
index b70bb2ff42dd09e9fede540fc02ad53fa715660c..3e7507ffff5e41a1df0ce9ee328bd722649660dc 100644
--- a/z_spm.h
+++ b/z_spm.h
@@ -65,7 +65,7 @@ void z_spmPrint( FILE *f, const pastix_spm_t *spm );
 
 pastix_spm_t *z_spmExpand(const pastix_spm_t *spm);
 void          z_spmDofExtend(pastix_spm_t *spm);
-void          z_spmScal( const pastix_complex64_t alpha, pastix_spm_t *spm );
+void          z_spmScal( const double alpha, pastix_spm_t *spm );
 
 
 #endif /* _z_spm_h_ */
diff --git a/z_spm_scal.c b/z_spm_scal.c
index 50428b4f2aa7f64c07c4fea482deb9043bc2e3ab..1e568bd43c62addc87c8240d5791fb2df99d267c 100644
--- a/z_spm_scal.c
+++ b/z_spm_scal.c
@@ -36,7 +36,7 @@
  *
  *******************************************************************************/
 void
-z_spmScal( const pastix_complex64_t alpha, pastix_spm_t *spm )
+z_spmScal( const double alpha, pastix_spm_t *spm )
 {
     pastix_int_t        nnz, i;
     pastix_complex64_t *values;