if (num_subjobs) for (i=0; subjobs[i]; i++) {
                char    *job_s = edg_wlc_JobIdUnparse(subjobs[i]);
-               printf("EDG_WL_SUB_JOBID[%lu]=\"%s\"\n",i,job_s);
+               printf("EDG_WL_SUB_JOBID[%d]=\"%s\"\n",i,job_s);
                free(job_s);
        }
 
                        asprintf(jdls+i, "JDL of subjob #%d\n", i+1);
                }
 
-               if (edg_wll_RegisterSubjobs(ctx, jobid, jdls, NULL, subjobs)) {
+               if (edg_wll_RegisterSubjobs(ctx, jobid, (const char **) jdls, NULL, subjobs)) {
                        char    *et,*ed;
                        edg_wll_Error(ctx,&et,&ed);
                        fprintf(stderr,"edg_wll_RegisterSubjobs: %s (%s)\n", et, ed);
 
            else qmCnt--;
          }              
          if ((qmCnt == 0) && (!isspace(this->raw[i+1]) && (this->raw[i+1] != '\0'))) {
-             fprintf(stderr,"%s: PARSE ERROR: Disallowed character ('%c') after ending '%c'at i=%d size=%d char=%d.\n",
-                     func,this->raw[i+1],ULM_QM,i,size,this->raw[i+1]);
+             fprintf(stderr,"%s: PARSE ERROR: Disallowed character ('%c') after ending '%c'at i=%d size=%lu char=%d.\n",
+                     func,this->raw[i+1],ULM_QM,i,(unsigned long)size,this->raw[i+1]);
              for (j=0; j<=i; j++) fputc(this->raw[j],stderr);
              fputc(ULM_LF,stderr);
              return ULM_PARSE_ERROR;
 
        err = edg_wll_gss_read_full(&conn, buf2, strlen(buf)+1, &timeout, &total, &stat);
        CPPUNIT_ASSERT_MESSAGE("edg_wll_gss_read_full()", !err);
 
-       CPPUNIT_ASSERT(strlen(buf)+1 == (int) total && !strcmp(buf,buf2) );
+       CPPUNIT_ASSERT(strlen(buf)+1 == total && !strcmp(buf,buf2) );
 
        edg_wll_gss_close(&conn, &timeout);
                
 
 
 #ifdef GLITE_LB_SERVER_WITH_WS
 #include <stdsoap2.h>
+int soap_serve(struct soap*); 
 #endif /* GLITE_LB_SERVER_WITH_WS */
 
 #include "glite/lb/srvbones.h"
 
        if (item == NULL) {
                asprintf(&out,"%s-1 ", old);
        } else {
-               asprintf(&out,"%s%d %s",old, strlen(item), item);
+               asprintf(&out,"%s%ld %s",old, (long)strlen(item), item);
        }
        free(old);
        return out;
 static char *dec_string(char *in, char **rest)
 {
        int scret;
-       int len = -1;
+       long len = -1;
        char *out;
        
-       scret = sscanf(in, "%d", &len);
+       scret = sscanf(in, "%ld", &len);
        if (scret < 1) {
                *rest = NULL;
                return NULL;
 
 #include <stdlib.h>
 
 #include "glite/lb/consumer.h"
-#include "glite/lb/context.h"
+#include "glite/lb/context-int.h"
 
 #include "lbs_db.h"
 
 
                edg_wll_SetError(ctx, ENOMEM, "Couldn't create internal structures");
                goto cleanup;
        }
-       if ( edg_wll_QueryJobsServer(ctx, qr, fl, &jobsOut, &statesOut) ) goto cleanup;
+       if ( edg_wll_QueryJobsServer(ctx, (const edg_wll_QueryRec **)qr, fl,
+                                       &jobsOut, &statesOut) ) goto cleanup;
        if ( edg_wll_JobsQueryResToSoap(soap, jobsOut, statesOut, out) ) goto cleanup;
        ret = SOAP_OK;