--- a/bandwidthd.c
+++ b/bandwidthd.c
@@ -103,7 +103,7 @@ void bd_CollectingData(char *filename)
 		}
 	}
 
-int WriteOutWebpages(long int timestamp)
+int WriteOutWebpages(time_t timestamp)
 {
 	struct IPDataStore *DataStore = IPDataStore;
 	struct SummaryData **SummaryData;
@@ -893,7 +893,7 @@ void StoreIPDataInCDF(struct IPData IncD
 		{
 		IPData = &IncData[counter];
 		HostIp2CharIp(IPData->ip, IPBuffer);
-		fprintf(cdf, "%s,%lu,", IPBuffer, IPData->timestamp);
+		fprintf(cdf, "%s,%" PRId64 ",", IPBuffer, IPData->timestamp);
 		Stats = &(IPData->Send);
 		fprintf(cdf, "%llu,%llu,%llu,%llu,%llu,%llu,%llu,", Stats->total, Stats->icmp, Stats->udp, Stats->tcp, Stats->ftp, Stats->http, Stats->p2p); 
 		Stats = &(IPData->Receive);
@@ -1089,7 +1089,7 @@ int RCDF_Test(char *filename)
 		if (fseek(cdf, -2, SEEK_CUR) == -1)
 			break;
 		}
-	if(fscanf(cdf, " %15[0-9.],%lu,", ipaddrBuffer, &timestamp) != 2)
+	if(fscanf(cdf, " %15[0-9.],%" PRId64 ",", ipaddrBuffer, &timestamp) != 2)
 		{
 		syslog(LOG_ERR, "%s is corrupted, skipping", filename); 
 		return FALSE;
@@ -1122,7 +1122,7 @@ void RCDF_PositionStream(FILE *cdf)
 			}
 		while (fgetc(cdf) != '\n' && !feof(cdf)); // Read to next line
 		ungetc('\n', cdf);  // Just so the fscanf mask stays identical
-        if(fscanf(cdf, " %15[0-9.],%lu,", ipaddrBuffer, &timestamp) != 2)
+        if(fscanf(cdf, " %15[0-9.],%" PRId64 ",", ipaddrBuffer, &timestamp) != 2)
 			{
 			syslog(LOG_ERR, "Unknown error while scanning for beginning of data...\n");
 			return;	
@@ -1144,7 +1144,7 @@ void RCDF_Load(FILE *cdf)
 
     for(Counter = 0; !feof(cdf) && !ferror(cdf); Counter++)
 	    {
-		if(fscanf(cdf, " %15[0-9.],%lu,", ipaddrBuffer, &timestamp) != 2) 
+		if(fscanf(cdf, " %15[0-9.],%" PRId64 ",", ipaddrBuffer, &timestamp) != 2)
 			goto End_RecoverDataFromCdf;
 
 		if (!timestamp) // First run through loop
--- a/graph.c
+++ b/graph.c
@@ -767,8 +767,8 @@ void PrepareXAxis(gdImagePtr im, time_t
     int black, red;
     time_t sample_begin, sample_end;    
     struct tm *timestruct;
-    long int MarkTime;
-	long int MarkTimeStep;
+    time_t MarkTime;
+    time_t MarkTimeStep;
     double x;
     
     sample_begin=timestamp-config.range;
@@ -786,7 +786,7 @@ void PrepareXAxis(gdImagePtr im, time_t
 	if ((24*60*60*(XWIDTH-XOFFSET))/config.range > (XWIDTH-XOFFSET)/10)
 		{
 		// Day bars
-	    timestruct = localtime((time_t *)&sample_begin);
+	    timestruct = localtime(&sample_begin);
     	timestruct->tm_sec = 0;
 	    timestruct->tm_min = 0;
     	timestruct->tm_hour = 0;
@@ -805,7 +805,7 @@ void PrepareXAxis(gdImagePtr im, time_t
 	        gdImageLine(im, x, 0, x, YHEIGHT-YOFFSET, red);
     	    gdImageLine(im, x+1, 0, x+1, YHEIGHT-YOFFSET, red);
 	
-    	    timestruct = localtime((time_t *)&MarkTime);
+    	    timestruct = localtime(&MarkTime);
 	        strftime(buffer, 100, "%a, %b %d", timestruct);
     	    gdImageString(im, gdFontSmall, x-30,  YHEIGHT-YOFFSET+10, buffer, black);        
 
@@ -817,7 +817,7 @@ void PrepareXAxis(gdImagePtr im, time_t
 	else
 		{
     	// Month Bars
-        timestruct = localtime((time_t *)&sample_begin);
+        timestruct = localtime(&sample_begin);
         timestruct->tm_sec = 0;
         timestruct->tm_min = 0;
         timestruct->tm_hour = 0;
@@ -839,7 +839,7 @@ void PrepareXAxis(gdImagePtr im, time_t
 	        gdImageLine(im, x, 0, x, YHEIGHT-YOFFSET, red);
     	    gdImageLine(im, x+1, 0, x+1, YHEIGHT-YOFFSET, red);
 	
-    	    timestruct = localtime((time_t *)&MarkTime);
+    	    timestruct = localtime(&MarkTime);
 	        strftime(buffer, 100, "%b", timestruct);
     	    gdImageString(im, gdFontSmall, x-6,  YHEIGHT-YOFFSET+10, buffer, black);        
 
@@ -854,7 +854,7 @@ void PrepareXAxis(gdImagePtr im, time_t
     // ****  Write the tic marks
     // ********************************************************************
 
-    timestruct = localtime((time_t *)&sample_begin);
+    timestruct = localtime(&sample_begin);
     timestruct->tm_sec = 0;
     timestruct->tm_min = 0;
     timestruct->tm_hour = 0;
@@ -884,7 +884,7 @@ void PrepareXAxis(gdImagePtr im, time_t
    		x = (MarkTime-sample_begin)*((XWIDTH-XOFFSET)/config.range) + XOFFSET;
         }
 
-    timestruct = localtime((time_t *)&sample_begin);
+    timestruct = localtime(&sample_begin);
     timestruct->tm_sec = 0;
     timestruct->tm_min = 0;
     timestruct->tm_hour = 0;
