--- a/build/FindALLEGRO.cmake
+++ b/build/FindALLEGRO.cmake
@@ -14,6 +14,7 @@
 FIND_PATH(ALLEGRO_INCLUDE_DIR allegro.h
   /usr/local/include
   /usr/include
+  /usr/include/allegro4
   $ENV{MINGDIR}/include
 )
 
--- a/include/OpenLayer/Collisions.hpp
+++ b/include/OpenLayer/Collisions.hpp
@@ -20,6 +20,9 @@
 };
 
 
+typedef std::pair< const Line&, const Line& > LinePair;
+
+
 class OL_LIB_DECLSPEC Collision {
 public:
    Collision( bool isCollision = false )
@@ -30,7 +33,14 @@
    
    Collision( const Line &aSegment, const Line &bSegment );
    
-   Collision( const std::vector< std::pair< Line, Line > *> &segmentLists );
+// GRRRRR erreur !
+// les occurences de std::vector< std::pair< Line, Line > *> posent de gros
+// problèmes ilfaut changer ça !
+
+// On pourrait essayer des std::vector< std::pair< const Line&, const Line& > *>
+// à la place.
+
+   Collision( const std::vector< LinePair * > &segmentLists );
 
 
    Collision( const Vec2D &aNormal, const Vec2D &bNormal, const Vec2D &collisionPoint )
@@ -77,7 +87,7 @@
    const Line GetSegment( CollidingObject objectID );
    
    // Returns all colliding segments //
-   inline const std::vector< std::pair< Line, Line > *> &GetAllSegments() {
+   inline const std::vector< LinePair * > &GetAllSegments() {
       return segmentLists;
    }
    
@@ -93,7 +103,7 @@
    
    std::vector< Vec2D > points;
    
-   std::vector< std::pair< Line, Line > *> segmentLists;
+   std::vector< LinePair * > segmentLists;
    Vec2D *normals[(int) NUM_OBJS];
 
    const static Line DEFAULT_SEGMENT;
--- a/include/OpenLayer/VertexListCollision.hpp
+++ b/include/OpenLayer/VertexListCollision.hpp
@@ -31,7 +31,7 @@
    
    thisIter++;
    
-   std::vector< std::pair< Line, Line > *> segmentLists;
+   std::vector< LinePair * > segmentLists;
    
    // Loop through each vertex //
    while( true ) {
@@ -86,7 +86,7 @@
                Line thisLine( thisVertex, thisPrev );
                Line otherLine( otherVertex, otherPrev );
                
-               segmentLists.push_back( new std::pair< Line, Line >( thisLine, otherLine ));
+               segmentLists.push_back( new LinePair( thisLine, otherLine ));
                
                /*
                return Collision( thisLine, otherLine );*/
--- a/src/Collisions.cpp
+++ b/src/Collisions.cpp
@@ -13,7 +13,7 @@
 Collision::
 Collision( const Line &aSegment, const Line &bSegment )
    : isCollision( true ) {
-   segmentLists.push_back( new std::pair< Line, Line >( aSegment, bSegment ));
+  segmentLists.push_back( new LinePair(aSegment, bSegment));
    
 	normals[(int) OBJ_A] = 0;
 	normals[(int) OBJ_B] = 0;
@@ -22,13 +22,13 @@
 
 
 Collision::
-Collision( const std::vector< std::pair< Line, Line > *> &segmentLists )
+Collision( const std::vector< LinePair * > &segmentLists )
    : isCollision( true ), segmentLists( segmentLists ) {
    
 	normals[(int) OBJ_A] = 0;
 	normals[(int) OBJ_B] = 0;
 	
-	for( std::vector< std::pair< Line, Line > *> ::const_iterator iter = segmentLists.begin();
+	for( std::vector< LinePair * > ::const_iterator iter = segmentLists.begin();
         iter != segmentLists.end(); iter++ ) {
       points.push_back((*iter)->first.GetIntersectionPoint((*iter)->second ));
    }
@@ -106,7 +106,7 @@
       }
    }
    
-	for( std::vector< std::pair< Line, Line > *> ::const_iterator iter = segmentLists.begin();
+	for( std::vector< LinePair * > ::const_iterator iter = segmentLists.begin();
         iter != segmentLists.end(); iter++ ) {
       delete *iter;
    }
@@ -121,9 +121,9 @@
       points.push_back( *iter );
    }
 	
-	for( std::vector< std::pair< Line, Line > *> ::const_iterator iter = c.segmentLists.begin();
+	for( std::vector< LinePair * > ::const_iterator iter = c.segmentLists.begin();
         iter != c.segmentLists.end(); iter++ ) {
-      segmentLists.push_back( new std::pair< Line, Line > (*(*iter)));
+      segmentLists.push_back( new std::pair< const Line&, const Line& > (*(*iter)));
    }
 	
 	normals[(int)OBJ_A] = ( c.normals[(int)OBJ_A] )? new Vec2D( *c.normals[(int)OBJ_A] ) : 0;
--- a/src/Glyph.cpp
+++ b/src/Glyph.cpp
@@ -261,8 +261,8 @@
 #ifdef USE_NEW_TTF
 		if(faceLoaded)
 		{
-			double rend_x=0;
-			double rend_y=0;
+		        // double rend_x=0; // unused variable
+			// double rend_y=0; // unused variable
 			std::ostringstream str;
 
       // Get extra arguments
