diff --git a/src/include/missile.h b/src/include/missile.h
index 4ec1cbf10..7c0782af1 100644
--- a/src/include/missile.h
+++ b/src/include/missile.h
@@ -117,6 +117,7 @@ typedef struct _missile_ {
 extern MissileType MissileTypes[];	/// all missile types
 extern MissileType* MissileTypeSmallFire;	/// Small fire missile type
 extern MissileType* MissileTypeBigFire;		/// Big fire missile type
+extern MissileType* MissileTypeGreenCross;	/// Green cross missile type
 
 /*----------------------------------------------------------------------------
 --	Functions
diff --git a/src/stratagus/oldmissile.cpp b/src/stratagus/oldmissile.cpp
index 55ae18372..8fb08aecb 100644
--- a/src/stratagus/oldmissile.cpp
+++ b/src/stratagus/oldmissile.cpp
@@ -442,6 +442,7 @@ global MissileType MissileTypes[MissileTypeMax] = {
 */
 global MissileType* MissileTypeSmallFire;	/// Small fire missile type
 global MissileType* MissileTypeBigFire;		/// Big fire missile type
+global MissileType* MissileTypeGreenCross;	/// Green cross missile type
 
 #define MAX_MISSILES	1800		/// maximum number of missiles
 
@@ -497,6 +498,7 @@ global void LoadMissileSprites(void)
     // FIXME: FIXME: FIXME: very diry hack
     MissileTypeSmallFire->Sprite->NumFrames=6;
     MissileTypeBigFire=MissileTypeByIdent("missile-big-fire");
+    MissileTypeGreenCross=MissileTypeByIdent("missile-green-cross");
 }
 
 /**
diff --git a/src/ui/mouse.cpp b/src/ui/mouse.cpp
index aae897313..58606e4dd 100644
--- a/src/ui/mouse.cpp
+++ b/src/ui/mouse.cpp
@@ -899,8 +899,7 @@ global void UIHandleButtonDown(int b)
                 CurrentButtonLevel = 0; // reset unit buttons to normal
 		UpdateButtonPanel();
 		MustRedraw|=RedrawButtonPanel|RedrawCursor;
-		// FIXME: slow slow slow slow....
-		MakeMissile(MissileTypeByIdent("missile-green-cross")
+		MakeMissile(MissileTypeGreenCross
 			,Minimap2MapX(CursorX)*TileSizeX+TileSizeX/2
 			,Minimap2MapY(CursorY)*TileSizeY+TileSizeY/2,0,0);
 		SendCommand(Minimap2MapX(CursorX),Minimap2MapY(CursorY));
@@ -974,18 +973,16 @@ global void UIHandleButtonDown(int b)
 	    DebugLevel3("Cursor middle down %d,%d\n",CursorX,CursorY);
 	    MustRedraw|=RedrawCursor;
 	} else if( MouseButtons&RightButton ) {
-            Unit* unit = UnitOnMapTile(Screen2MapX(CursorX),Screen2MapY(CursorY));
-            if ( unit )
-              { // if right click on building -- blink
+            Unit* unit;
+
+            unit = UnitOnMapTile(Screen2MapX(CursorX),Screen2MapY(CursorY));
+            if ( unit ) { // if right click on building -- blink
               unit->Blink=3;
-              }
-            else
-              { // if not not click on building -- green cross
-	      // FIXME: slow slow slow slow....
-	      MakeMissile(MissileTypeByIdent("missile-green-cross")
+	    } else { // if not not click on building -- green cross
+	      MakeMissile(MissileTypeGreenCross
 	 	    ,MapX*TileSizeX+CursorX-TheUI.MapX
 		    ,MapY*TileSizeY+CursorY-TheUI.MapY,0,0);
-              }
+	    }
 	    DoRightButton(Screen2MapX(CursorX),Screen2MapY(CursorY));
 	}
     } else if( CursorOn==CursorOnMinimap ) {
@@ -993,8 +990,7 @@ global void UIHandleButtonDown(int b)
 	    MapSetViewpoint(Minimap2MapX(CursorX)-MapWidth/2
 		    ,Minimap2MapY(CursorY)-MapHeight/2);
 	} else if( MouseButtons&RightButton ) {
-	    // FIXME: slow slow slow slow....
-	    MakeMissile(MissileTypeByIdent("missile-green-cross")
+	    MakeMissile(MissileTypeGreenCross
 		    ,Minimap2MapX(CursorX)*TileSizeX+TileSizeX/2
 		    ,Minimap2MapY(CursorY)*TileSizeY+TileSizeY/2,0,0);
 	    DoRightButton(Minimap2MapX(CursorX),Minimap2MapY(CursorY));