--- src/board/board.cpp.old	2010-06-01 08:20:32.000000000 +0200
+++ src/board/board.cpp	2010-06-01 08:20:54.000000000 +0200
@@ -347,7 +347,7 @@
 		}
 
 	//redraws the image on a brush to set the background
-	canvas->setBackgroundBrush ( QBrush::QBrush(image));
+	canvas->setBackgroundBrush ( QBrush(image));
 
 }
 
--- src/board/clockdisplay.cpp.old	2010-06-01 08:31:10.000000000 +0200
+++ src/board/clockdisplay.cpp	2010-06-01 08:31:38.000000000 +0200
@@ -274,13 +274,13 @@
 
 	if(b_time > 3600 || w_time > 3600)
 	{
-		bt = QTime::QTime(0,0).addSecs(abs(b_time)).toString("h:mm:ss") ;
-		wt = QTime::QTime(0,0).addSecs(abs(w_time)).toString("h:mm:ss") ;
+		bt = QTime(0,0).addSecs(abs(b_time)).toString("h:mm:ss") ;
+		wt = QTime(0,0).addSecs(abs(w_time)).toString("h:mm:ss") ;
 	}
 	else
 	{
-		bt = QTime::QTime(0,0).addSecs(abs(b_time)).toString("m:ss") ;
-		wt = QTime::QTime(0,0).addSecs(abs(w_time)).toString("m:ss") ;
+		bt = QTime(0,0).addSecs(abs(b_time)).toString("m:ss") ;
+		wt = QTime(0,0).addSecs(abs(w_time)).toString("m:ss") ;
 	}
 	
 	switch(timeSystem)
--- src/gtp/qgtp.cpp.old	2010-06-01 08:34:09.000000000 +0200
+++ src/gtp/qgtp.cpp	2010-06-01 08:34:28.000000000 +0200
@@ -341,7 +341,7 @@
 	_cpt++;
 
 	qDebug("flush -> %s",s);
-	uint i= programProcess->write(QByteArray::QByteArray(s));
+	uint i= programProcess->write(QByteArray(s));
 
 //	int j= programProcess->waitForBytesWritten ( 100 );
 
--- src/board/imagehandler.cpp.old	2010-06-01 08:34:55.000000000 +0200
+++ src/board/imagehandler.cpp	2010-06-01 08:35:17.000000000 +0200
@@ -93,8 +93,8 @@
 	{
 		altGhostPixmaps = new QList<QPixmap>();//::QList();
 
-		QPixmap alt1 = QPixmap::QPixmap(":/new/prefix1/ressources/pics/alt_ghost_black.png");
-		QPixmap alt2 = QPixmap:: QPixmap(":/new/prefix1/ressources/pics/alt_ghost_white.png");
+		QPixmap alt1 = QPixmap(":/new/prefix1/ressources/pics/alt_ghost_black.png");
+		QPixmap alt2 = QPixmap(":/new/prefix1/ressources/pics/alt_ghost_white.png");
 
 		if (alt1.isNull() || alt2.isNull())
 			qFatal("Could not load alt_ghost pixmaps.");
--- src/board/mark.cpp.old	2010-06-01 08:36:39.000000000 +0200
+++ src/board/mark.cpp	2010-06-01 08:36:51.000000000 +0200
@@ -109,7 +109,7 @@
 		setPen(QPen(col, 2));
 //	else
 
-	pa = QPolygon::QPolygon(3);
+	pa = QPolygon(3);
 
 //		setPen(QPen(col, 1));
 	setSize(s, s);
--- src/network/gamedialog.cpp.old	2010-06-01 08:45:26.000000000 +0200
+++ src/network/gamedialog.cpp	2010-06-01 08:45:40.000000000 +0200
@@ -1123,7 +1123,7 @@
 	 * probably FIXME, I just wonder why its like that in the first place */
 	
 	QPalette p(QApplication::palette());
-	p.setColor(  QPalette::Base , QColor::QColor("cyan"));
+	p.setColor(  QPalette::Base , QColor("cyan"));
 	
 	qDebug("GameDialog::recvRequest");
 	/* If there's no existing request, then nothing should have changed
