diff --git a/src/include/ui.h b/src/include/ui.h
index 506a6452a..718f75e9d 100644
--- a/src/include/ui.h
+++ b/src/include/ui.h
@@ -67,8 +67,6 @@ struct _button_ {
     int	    Height;			/// height of the button on the screen
 };
 
-#ifdef SPLIT_SCREEN_SUPPORT
-
 #define MAX_NUM_VIEWPORTS 4		/// Number of supported viewports
 
 typedef struct _viewport_ Viewport;	/// Viewport typedef
@@ -93,6 +91,12 @@ typedef struct _viewport_ Viewport;	/// Viewport typedef
 **		Tile coordinates of UL corner of this viewport with respect to
 **		UL corner of the whole map.
 **
+**	Viewport::Unit
+**
+**		Viewport is bound to an unit. If the unit moves the viewport
+**		changes the position together with the unit. 
+**		@todo binding to a group.
+**
 **	@todo mixing unsigned and int is dangerous!!!
 */
 struct _viewport_ {
@@ -105,10 +109,14 @@ struct _viewport_ {
     unsigned MapY;		/// Map tile upper corner y coordinate
     unsigned MapWidth;		/// Width in map tiles
     unsigned MapHeight;		/// Height in map tiles
+
+    Unit* Unit;			/// Bound to this unit
 };
 
 /**
 **	Enumeration of the different predefined viewport configurations.
+**
+**	@todo this should be later user configurable
 */
 typedef enum {
     VIEWPORT_SINGLE,		/// Old single viewport
@@ -119,8 +127,6 @@ typedef enum {
     NUM_VIEWPORT_MODES		/// Number of different viewports.
 } ViewportMode;
 
-#endif /* SPLIT_SCREEN_SUPPORT */
-
 /**
 **	Panel types used in menus (and stored in ui global below)
 */
@@ -217,24 +223,16 @@ typedef struct _ui_ {
     int		ButtonPanelX;		/// Button panel screen X position
     int		ButtonPanelY;		/// Button panel screen Y position
 
-#ifdef SPLIT_SCREEN_SUPPORT
+    // Map area
     ViewportMode	ViewportMode;	/// Current viewport mode
-    int		ActiveViewport;		/// Contains (or last contained) pointer
-					/// (index into VP[])
-    int		LastClickedVP;		/// FIXME: Docu
-    int		NumViewports;		/// viewports currently used
-    Viewport	VP[MAX_NUM_VIEWPORTS];	/// FIXME: Docu
-    /* Map* attributes of Viewport are unused here */
+    // FIXME: Johns: we should make the ints pointers
+	/// Contains (or last contained) pointer (index into VP[])
+    int		ActiveViewport;
+    int		LastClickedVP;		/// Last clicked = active viewport
+    int		NumViewports;		/// Viewports currently used
+    Viewport	VP[MAX_NUM_VIEWPORTS];	/// Parameters of all viewports
+    // Map* attributes of Viewport are unused here:
     Viewport	MapArea;		/// geometry of the whole map area
-#else /* SPLIT_SCREEN_SUPPORT */
-    // The map
-    int		MapX;			/// big map screen X position
-    int		MapY;			/// big map screen Y position
-	/// map width for current mode (MapX+14*32-1 for 640x480)
-    unsigned	MapEndX;
-	/// map height for current mode (MapY+14*32-1 for 640x480)
-    unsigned	MapEndY;
-#endif /* SPLIT_SCREEN_SUPPORT */
 
     // The menu button
     GraphicConfig MenuButton;		/// menu button background
@@ -329,8 +327,6 @@ extern void RestrictCursorToViewport(void);
     /// Restrict mouse cursor to minimap
 extern void RestrictCursorToMinimap(void);
 
-#ifdef SPLIT_SCREEN_SUPPORT
-
     /// FIXME: Short one line docu
 extern int GetViewport(int, int);
     /// FIXME: Short one line docu
@@ -340,8 +336,6 @@ extern void CycleViewportMode(int);
     /// FIXME: Short one line docu
 extern void SetViewportMode(ViewportMode mode);
 
-#endif /* SPLIT_SCREEN_SUPPORT */
-
 //@}
 
 #endif	// !__UI_H__