diff --git a/src/video/new_video.cpp b/src/video/new_video.cpp
index 7935a32e7..b9a80e71d 100644
--- a/src/video/new_video.cpp
+++ b/src/video/new_video.cpp
@@ -29,6 +29,7 @@
 
 #include "map.h"
 #include "ui.h"
+#include "cursor.h"
 
 #ifdef USE_SDL
 #include <SDL/SDL.h>
@@ -81,17 +82,57 @@ extern void InitVideoWin32(void);
 --	Variables
 ----------------------------------------------------------------------------*/
 
-global int VideoFullScreen;		/// true fullscreen wanted
+global char VideoFullScreen;		/// true fullscreen wanted
+
+#ifdef NEW_VIDEO
+
+global int ClipX1;			/// current clipping top left
+global int ClipY1;			/// current clipping top left
+global int ClipX2;			/// current clipping bottom right
+global int ClipY2;			/// current clipping bottom right
+
+#endif
 
 /*----------------------------------------------------------------------------
 --	Functions
 ----------------------------------------------------------------------------*/
 
+#ifdef NEW_VIDEO
+/**
+**	Set clipping for graphic routines.
+**
+**	@param left	Left X screen coordinate.
+**	@param top	Top Y screen coordinate.
+**	@param right	Right X screen coordinate.
+**	@param bottom	Bottom Y screen coordinate.
+*/
+global void SetClipping(int left,int top,int right,int bottom)
+{
+    if( left>right ) { left^=right; right^=left; left^=right; }
+    if( top>bottom ) { top^=bottom; bottom^=top; top^=bottom; }
+    
+    if( left<0 )    left=0;
+    if( top<0 )	    top=0;
+    if( right<0 )   right=0;
+    if( bottom<0 )  bottom=0;
+
+    if( left>=VideoWidth )	left=VideoWidth-1;
+    if( right>=VideoWidth )	right=VideoWidth-1;
+    if( bottom>=VideoHeight ) bottom=VideoHeight-1;
+    if( top>=VideoHeight )	top=VideoHeight-1;
+    
+    ClipX1=left;
+    ClipY1=top;
+    ClipX2=right;
+    ClipY2=bottom;
+}
+#endif
+
 /**
 **	Load a picture and display it on the screen (full screen),
 **	changing the colormap and so on..
 **
-**	@param name name of the picture (file) to display
+**	@param name	Name of the picture (file) to display.
 */
 global void DisplayPicture(const char *name)
 {
@@ -101,10 +142,11 @@ global void DisplayPicture(const char *name)
     VideoSetPalette(title->Pixels);
 
 #ifdef USE_SDL
+    // FIXME: should be moved to system/hardware dependend part
     { extern SDL_Surface *Screen;		/// internal screen
     SDL_LockSurface(Screen);
 
-    DebugCheck( VideoMemory!=Screen->pixels );
+    VideoMemory=Screen->pixels;
 #endif
 
     // FIXME: bigger window ?
@@ -113,6 +155,7 @@ global void DisplayPicture(const char *name)
 	,(VideoWidth-title->Width)/2,(VideoHeight-title->Height)/2);
 
 #ifdef USE_SDL
+    // FIXME: should be moved to system/hardware dependend part
     SDL_UnlockSurface(Screen); }
 #endif
     VideoFree(title);
@@ -141,9 +184,12 @@ global void InitVideo(void)
     //
     InitGraphic();
     InitLineDraw();
+#ifdef NEW_VIDEO
+    InitSprite();
+    InitCursor();
+#endif
 
     DebugLevel3(__FUNCTION__": %d %d\n",MapWidth,MapHeight);
-    fflush(stdout);
 }
 
 //@}