diff --git a/ChangeLog b/ChangeLog
index ff79066..318bf44 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2020-07-26  Anuj Verma  <anujv@iitbhilai.ac.in>
+
+	[graph/win32] Fix Warnings.
+
+	* graph/win32/grwin32.c (gr_win32_surface_listen_event):
+	  Remove unused `window' variable.
+	  warning: unused variable 'window' [-Wunused-variable]
+
+	* graph/win23/grwin32.c (Message_Process): Avoid directly
+	  casting `ATOM' to `LPCSTR' as `LPCSTR' is a 8-bit string
+	  whereas the `ATOM' can be `CHAR*' or `WCHAR*' depending
+	  weather `UNICODE' is defined. Use `MAKEINTATOM' instead.
+	  warning: cast to pointer from integer of different
+	           size [-Wint-to-pointer-cast]
+
 2020-07-24  Werner Lemberg  <wl@gnu.org>
 
 	Make new code from David work.
diff --git a/graph/win32/grwin32.c b/graph/win32/grwin32.c
index 585ba1f..23f9c3a 100644
--- a/graph/win32/grwin32.c
+++ b/graph/win32/grwin32.c
@@ -314,7 +314,6 @@ gr_win32_surface_listen_event( grWin32Surface*  surface,
                                grEvent*         grevent )
 {
   MSG     msg;
-  HANDLE  window = surface->window;
 
   event_mask=event_mask;  /* unused parameter */
 
@@ -531,14 +530,18 @@ LRESULT CALLBACK Message_Process( HWND handle, UINT mess,
       /*                                                               */
       surface = ((LPCREATESTRUCT)lParam)->lpCreateParams;
 
-      SetProp( handle, (LPCSTR)(LONG)ourAtom, surface );
+      /* `MAKEINTATOM' converts `ourAtom' to `LPCTSTR' which can be    */
+      /* `CHAR*' or `WCHAR*' depending weather the program is compiled */
+      /* with `UNICODE' or not. Check the MSDN page for more details.  */
+      /* https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-makeintatom */
+      SetProp( handle, MAKEINTATOM( ourAtom ), surface );
     }
     else
     {
       /* for other calls, we retrieve the surface handle from the window */
       /* property.. ugly, isn't it ??                                    */
       /*                                                                 */
-      surface = (grWin32Surface*) GetProp( handle, (LPCSTR)(LONG)ourAtom );
+      surface = (grWin32Surface*) GetProp( handle, MAKEINTATOM( ourAtom ) );
     }
 
     switch( mess )
