void * estimator_data;
        double start_time;
        double last_update;
-       unsigned long goal_value;
-       unsigned long last_position;
+       size_t goal_value;
+       size_t last_position;
 } lutil_meter_t;
 
 extern const lutil_meter_display_t lutil_meter_text_display;
        lutil_meter_t *lutil_meter,
        const lutil_meter_display_t *display, 
        const lutil_meter_estimator_t *estimator,
-       unsigned long goal_value);
+       size_t goal_value);
 extern int lutil_meter_update (
        lutil_meter_t *lutil_meter,
-       unsigned long position,
+       size_t position,
        int force);
 extern int lutil_meter_close (lutil_meter_t *lutil_meter);
 
 
                                break;
                        case ARG_ULONG:
                                assert( c->argc == 2 );
-                               if ( lutil_atoulx( &ularg, c->argv[1], 0 ) != 0 ) {
+                               if ( lutil_atoullx( &ularg, c->argv[1], 0 ) != 0 ) {
                                        snprintf( c->cr_msg, sizeof( c->cr_msg ),
                                                "<%s> unable to parse \"%s\" as unsigned long",
                                                c->argv[0], c->argv[1] );
                        case ARG_INT:           *(int*)ptr = c->value_int;                      break;
                        case ARG_UINT:          *(unsigned*)ptr = c->value_uint;                        break;
                        case ARG_LONG:          *(long*)ptr = c->value_long;                    break;
-                       case ARG_ULONG:         *(unsigned long*)ptr = c->value_ulong;                  break;
+                       case ARG_ULONG:         *(size_t*)ptr = c->value_ulong;                 break;
                        case ARG_BER_LEN_T:     *(ber_len_t*)ptr = c->value_ber_t;                      break;
                        case ARG_STRING: {
                                char *cc = *(char**)ptr;
                case ARG_INT:   c->value_int = *(int *)ptr; break;
                case ARG_UINT:  c->value_uint = *(unsigned *)ptr; break;
                case ARG_LONG:  c->value_long = *(long *)ptr; break;
-               case ARG_ULONG: c->value_ulong = *(unsigned long *)ptr; break;
+               case ARG_ULONG: c->value_ulong = *(size_t *)ptr; break;
                case ARG_BER_LEN_T:     c->value_ber_t = *(ber_len_t *)ptr; break;
                case ARG_STRING:
                        if ( *(char **)ptr )
                case ARG_INT: bv.bv_len = snprintf(bv.bv_val, sizeof( c->log ), "%d", c->value_int); break;
                case ARG_UINT: bv.bv_len = snprintf(bv.bv_val, sizeof( c->log ), "%u", c->value_uint); break;
                case ARG_LONG: bv.bv_len = snprintf(bv.bv_val, sizeof( c->log ), "%ld", c->value_long); break;
-               case ARG_ULONG: bv.bv_len = snprintf(bv.bv_val, sizeof( c->log ), "%lu", c->value_ulong); break;
+               case ARG_ULONG: bv.bv_len = snprintf(bv.bv_val, sizeof( c->log ), "%llu", c->value_ulong); break;
                case ARG_BER_LEN_T: bv.bv_len = snprintf(bv.bv_val, sizeof( c->log ), "%ld", c->value_ber_t); break;
                case ARG_ON_OFF: bv.bv_len = snprintf(bv.bv_val, sizeof( c->log ), "%s",
                        c->value_int ? "TRUE" : "FALSE"); break;