diff --git a/togl/linuxwin/cglmtex.cpp b/togl/linuxwin/cglmtex.cpp
index b0da0518..a9b174fe 100644
--- a/togl/linuxwin/cglmtex.cpp
+++ b/togl/linuxwin/cglmtex.cpp
@@ -1149,7 +1149,7 @@ GLubyte *CGLMTex::ReadTexels( GLMTexLockDesc *desc, bool readWholeSlice, bool re
 
 		if( readOnly )
 		{
-			data = m_backing + m_layout->m_slices[ desc->m_sliceIndex ].m_storageOffset;	// this would change for PBO
+			data = (GLubyte*)(m_backing + m_layout->m_slices[ desc->m_sliceIndex ].m_storageOffset);	// this would change for PBO
 			//int sliceSize = m_layout->m_slices[ desc->m_sliceIndex ].m_storageSize;
 
 			// interestingly enough, we can use the same path for both 2D and 3D fetch
@@ -1668,10 +1668,10 @@ void CGLMTex::Lock( GLMTexLockParams *params, char** addressOut, int* yStrideOut
 
 	if ( copyout && ( (m_layout->m_key.m_texFlags & kGLMTexDynamic) || params->m_readonly ) )
 	{
-		*addressOut = ReadTexels( desc, true, params->m_readonly );
+		*addressOut = (char*)ReadTexels( desc, true, params->m_readonly );
 
 		if( !params->m_readonly )
-			m_mapped = *addressOut;
+			m_mapped = (GLubyte*)*addressOut;
 	}
 	else
 	{
diff --git a/togles/linuxwin/cglmtex.cpp b/togles/linuxwin/cglmtex.cpp
index 53b9ee8d..6c9bd136 100644
--- a/togles/linuxwin/cglmtex.cpp
+++ b/togles/linuxwin/cglmtex.cpp
@@ -1153,7 +1153,7 @@ GLubyte *CGLMTex::ReadTexels( GLMTexLockDesc *desc, bool readWholeSlice, bool re
 
 		if( readOnly )
 		{
-			data = m_backing + m_layout->m_slices[ desc->m_sliceIndex ].m_storageOffset;	// this would change for PBO
+			data = (GLubyte*)(m_backing + m_layout->m_slices[ desc->m_sliceIndex ].m_storageOffset);	// this would change for PBO
 			//int sliceSize = m_layout->m_slices[ desc->m_sliceIndex ].m_storageSize;
 
 			// interestingly enough, we can use the same path for both 2D and 3D fetch
@@ -3944,10 +3944,10 @@ void CGLMTex::Lock( GLMTexLockParams *params, char** addressOut, int* yStrideOut
 	{
 		// read the whole slice
 		// (odds are we'll never request anything but a whole slice to be read..)
-		*addressOut = ReadTexels( desc, true, params->m_readonly );
+		*addressOut = (char*)ReadTexels( desc, true, params->m_readonly );
 
 		if( !params->m_readonly )
-			m_mapped = *addressOut;
+			m_mapped = (GLubyte*)*addressOut;
 	}
 	else
 	{