Index: apps/gui/gwps-common.c
===================================================================
RCS file: /cvsroot/rockbox/apps/gui/gwps-common.c,v
retrieving revision 1.69
diff -u -p -r1.69 gwps-common.c
--- apps/gui/gwps-common.c	29 Dec 2006 19:17:03 -0000	1.69
+++ apps/gui/gwps-common.c	5 Jan 2007 15:34:16 -0000
@@ -613,30 +613,37 @@ static char* get_tag(struct wps_data* wp
                     wps_data->full_line_progressbar=0;
                     return buf;
 #else
-                    char *p=strchr(tag, '|');
-                    if (p) {
-                        wps_data->progress_height=atoi(++p);
-                        p=strchr(p, '|');
-                        if (p) {        
-                            wps_data->progress_start=atoi(++p);
-                            p=strchr(p, '|');
-                            if (p)
-                                wps_data->progress_end=atoi(++p);   
-                            else 
+                    /* default values : */
+                    wps_data->progress_top = -1;
+                    wps_data->progress_height = 6;
+                    wps_data->progress_start = 0;
+                    wps_data->progress_end = 0;
+
+                    char *prev=strchr(tag, '|');
+                    if (prev) {
+                        char *p=strchr(prev+1, '|');
+                        if (p) {
+                            wps_data->progress_height=atoi(++prev);
+                            prev=strchr(prev, '|');
+                            p=strchr(++p, '|');
+                            if (p) {
+                                wps_data->progress_start=atoi(++prev);
+                                prev=strchr(prev, '|');
+                                p=strchr(++p, '|');
+                                if (p) {
+                                    wps_data->progress_end=atoi(++prev);
+                                    prev=strchr(prev, '|');
+                                    p=strchr(++p, '|');
+                                    if(p)
+                                        wps_data->progress_top = atoi(++prev);
+                                }
+
+                            if (wps_data->progress_height<3)
+                                wps_data->progress_height=3;
+                            if (wps_data->progress_end<wps_data->progress_start+3)
                                 wps_data->progress_end=0;
-                        }else {
-                             wps_data->progress_start=0;
-                             wps_data->progress_end=0;
-                        }     
-                        
-                        if (wps_data->progress_height<3)
-                            wps_data->progress_height=3;
-                        if (wps_data->progress_end<wps_data->progress_start+3)
-                            wps_data->progress_end=0;
-                    }else {
-                        wps_data->progress_height=6;
-                        wps_data->progress_start=0;
-                        wps_data->progress_end=0; 
+                            }
+                        }
                     }
                     return "\x01";
 #endif
@@ -1817,8 +1824,12 @@ bool gui_wps_refresh(struct gui_wps *gwp
             /* progress */
             if (flags & refresh_mode & WPS_REFRESH_PLAYER_PROGRESS) 
             {
-                int sb_y = i*h + offset + ((h > data->progress_height + 1)
-                    ? (h - data->progress_height) / 2 : 1);
+                int sb_y;
+                if (data->progress_top == -1)
+                    sb_y = i*h + offset + ((h > data->progress_height + 1)
+                                           ? (h - data->progress_height) / 2 : 1);
+                else
+                    sb_y = data->progress_top;
 
                 if (!data->progress_end)
                     data->progress_end=display->width;
Index: apps/gui/gwps.h
===================================================================
RCS file: /cvsroot/rockbox/apps/gui/gwps.h,v
retrieving revision 1.40
diff -u -p -r1.40 gwps.h
--- apps/gui/gwps.h	13 Dec 2006 11:52:21 -0000	1.40
+++ apps/gui/gwps.h	5 Jan 2007 15:34:16 -0000
@@ -103,6 +103,7 @@ struct wps_data
     unsigned short time_mult[WPS_MAX_LINES][WPS_MAX_SUBLINES];
     long subline_expire_time[WPS_MAX_LINES];
     int curr_subline[WPS_MAX_LINES];
+    int progress_top;
     int progress_height;
     int progress_start;
     int progress_end;
