Index: src/base/PdfParser.cpp
===================================================================
--- src/base/PdfParser.cpp	(revision 1648)
+++ src/base/PdfParser.cpp	(working copy)
@@ -801,7 +801,7 @@
                     &tmp1, &tmp2, &(m_offsets[objID].cUsed), &empty1, &empty2 );
 
             m_offsets[objID].lOffset = static_cast<pdf_long>(tmp1);
-            m_offsets[objID].lGeneration = tmp2;
+            m_offsets[objID].lGeneration = static_cast<long>(tmp2);
 #endif
        }
 
Index: src/doc/PdfIdentityEncoding.cpp
===================================================================
--- src/doc/PdfIdentityEncoding.cpp	(revision 1648)
+++ src/doc/PdfIdentityEncoding.cpp	(working copy)
@@ -149,9 +149,9 @@
         lCID = this->GetCIDValue(lUnicodeValue);
         if (lCID == 0 && pFont) {
 #ifdef PODOFO_IS_LITTLE_ENDIAN
-            lCID = pFont->GetFontMetrics()->GetGlyphId( (((*pStr & 0xff) << 8) | ((*pStr & 0xff00) >> 8)) );
+            lCID = static_cast<pdf_utf16be>( pFont->GetFontMetrics()->GetGlyphId( (((*pStr & 0xff) << 8) | ((*pStr & 0xff00) >> 8)) ));
 #else
-            lCID = pFont->GetFontMetrics()->GetGlyphId( *pStr );
+            lCID = static_cast<pdf_utf16be>( pFont->GetFontMetrics()->GetGlyphId( *pStr ));
 #endif // PODOFO_IS_LITTLE_ENDIAN
         }
         
Index: src/doc/PdfShadingPattern.cpp
===================================================================
--- src/doc/PdfShadingPattern.cpp	(revision 1648)
+++ src/doc/PdfShadingPattern.cpp	(working copy)
@@ -593,25 +593,25 @@
 	char buff[18];
 
 	buff[ 0] = 0; // flag - start new triangle
-	buff[ 1] = 255.0 * (dX0 - minx) / (maxx - minx);
-	buff[ 2] = 255.0 * (dY0 - miny) / (maxy - miny);
-	buff[ 3] = 255.0 * rgb0.GetRed();
-	buff[ 4] = 255.0 * rgb0.GetGreen();
-	buff[ 5] = 255.0 * rgb0.GetBlue();
+	buff[ 1] = static_cast<char>(255.0 * (dX0 - minx) / (maxx - minx));
+	buff[ 2] = static_cast<char>(255.0 * (dY0 - miny) / (maxy - miny));
+	buff[ 3] = static_cast<char>(255.0 * rgb0.GetRed());
+	buff[ 4] = static_cast<char>(255.0 * rgb0.GetGreen());
+	buff[ 5] = static_cast<char>(255.0 * rgb0.GetBlue());
 
 	buff[ 6] = 0; // flag - start new triangle
-	buff[ 7] = 255.0 * (dX1 - minx) / (maxx - minx);
-	buff[ 8] = 255.0 * (dY1 - miny) / (maxy - miny);
-	buff[ 9] = 255.0 * rgb1.GetRed();
-	buff[10] = 255.0 * rgb1.GetGreen();
-	buff[11] = 255.0 * rgb1.GetBlue();
+	buff[ 7] = static_cast<char>(255.0 * (dX1 - minx) / (maxx - minx));
+	buff[ 8] = static_cast<char>(255.0 * (dY1 - miny) / (maxy - miny));
+	buff[ 9] = static_cast<char>(255.0 * rgb1.GetRed());
+	buff[10] = static_cast<char>(255.0 * rgb1.GetGreen());
+	buff[11] = static_cast<char>(255.0 * rgb1.GetBlue());
 
 	buff[12] = 0; // flag - start new triangle
-	buff[13] = 255.0 * (dX2 - minx) / (maxx - minx);
-	buff[14] = 255.0 * (dY2 - miny) / (maxy - miny);
-	buff[15] = 255.0 * rgb2.GetRed();
-	buff[16] = 255.0 * rgb2.GetGreen();
-	buff[17] = 255.0 * rgb2.GetBlue();
+	buff[13] = static_cast<char>(255.0 * (dX2 - minx) / (maxx - minx));
+	buff[14] = static_cast<char>(255.0 * (dY2 - miny) / (maxy - miny));
+	buff[15] = static_cast<char>(255.0 * rgb2.GetRed());
+	buff[16] = static_cast<char>(255.0 * rgb2.GetGreen());
+	buff[17] = static_cast<char>(255.0 * rgb2.GetBlue());
 
 	shadingObject->GetStream()->Set(buff, len);
 }
Index: src/doc/PdfTilingPattern.cpp
===================================================================
--- src/doc/PdfTilingPattern.cpp	(revision 1648)
+++ src/doc/PdfTilingPattern.cpp	(working copy)
@@ -189,7 +189,7 @@
 		out << "2 J" << " "; // line capability style
 		out << "0.5 w" <<  " "; //line width
 
-		int left, bottom, right, top, whalf, hhalf;
+		double left, bottom, right, top, whalf, hhalf;
 		left = rRect.GetLeft();
 		bottom = rRect.GetBottom();
 		right = left + rRect.GetWidth();
