diff --git a/src/editor/editloop.cpp b/src/editor/editloop.cpp
index 79b04daeb..e90c02695 100644
--- a/src/editor/editloop.cpp
+++ b/src/editor/editloop.cpp
@@ -1014,9 +1014,12 @@ local void EditorCallbackButtonDown(unsigned button __attribute__ ((unused)))
 	    if( UnitUnderCursor->Type->GoldMine ||
 		UnitUnderCursor->Type->OilPatch ||
 		UnitUnderCursor->Type->GivesOil ) {
-		EditorEditResource();;
+		EditorEditResource();
 		return;
 	    }
+	    if( !UnitUnderCursor->Type->Building && UnitUnderCursor->HP > 0 ) {
+		EditorEditAiProperties();
+	    }
 	}
     }
 
diff --git a/src/include/menus.h b/src/include/menus.h
index 4805a42cf..1abddd0a8 100644
--- a/src/include/menus.h
+++ b/src/include/menus.h
@@ -327,6 +327,8 @@ extern void InitMenuFunctions(void);
 
     /// Edit resource properties
 extern void EditorEditResource(void);
+    /// Edit ai properties
+extern void EditorEditAiProperties(void);
 
 //@}
 
diff --git a/src/ui/menus.cpp b/src/ui/menus.cpp
index d219271f5..efda4e03b 100644
--- a/src/ui/menus.cpp
+++ b/src/ui/menus.cpp
@@ -257,6 +257,9 @@ local void EditorMapPropertiesOk(void);
 local void EditorEditResourceEnterAction(Menuitem *mi,int key);
 local void EditorEditResourceOk(void);
 local void EditorEditResourceCancel(void);
+local void EditorEditAiPropertiesGem(Menuitem *mi);
+local void EditorEditAiPropertiesOk(void);
+local void EditorEditAiPropertiesCancel(void);
 local void EditorQuitMenu(void);
 
 /*----------------------------------------------------------------------------
@@ -534,6 +537,11 @@ global void InitMenuFuncHash(void) {
     HASHADD(EditorEditResourceEnterAction,"editor-edit-resource-enter-action");
     HASHADD(EditorEditResourceOk,"editor-edit-resource-ok");
     HASHADD(EditorEditResourceCancel,"editor-edit-resource-cancel");
+
+// Editor edit ai properties
+    HASHADD(EditorEditAiPropertiesGem,"editor-edit-ai-properties-gem");
+    HASHADD(EditorEditAiPropertiesOk,"editor-edit-ai-properties-ok");
+    HASHADD(EditorEditAiPropertiesCancel,"editor-edit-ai-properties-cancel");
 }
 
 /*----------------------------------------------------------------------------
@@ -4867,6 +4875,64 @@ local void EditorEditResourceCancel(void)
     GameMenuReturn();
 }
 
+/**
+**	Edit ai properties
+*/
+global void EditorEditAiProperties(void)
+{
+    Menu *menu;
+
+    menu = FindMenu("menu-editor-edit-ai-properties");
+    if (UnitUnderCursor->Active) {
+	menu->items[1].d.gem.state = MI_GSTATE_CHECKED;
+	menu->items[3].d.gem.state = MI_GSTATE_UNCHECKED;
+    } else {
+	menu->items[1].d.gem.state = MI_GSTATE_UNCHECKED;
+	menu->items[3].d.gem.state = MI_GSTATE_CHECKED;
+    }
+
+    ProcessMenu("menu-editor-edit-ai-properties", 1);
+}
+
+/**
+**	Active or Passive gem clicked in menu-editor-edit-ai-properties
+*/
+local void EditorEditAiPropertiesGem(Menuitem *mi)
+{
+    if (&mi->menu->items[1] == mi) {
+	mi->d.gem.state = MI_GSTATE_CHECKED;
+	mi->menu->items[3].d.gem.state = MI_GSTATE_UNCHECKED;
+    } else {
+	mi->d.gem.state = MI_GSTATE_CHECKED;
+	mi->menu->items[1].d.gem.state = MI_GSTATE_UNCHECKED;
+    }
+}
+
+/**
+**	Ok button from menu-editor-edit-ai-properties
+*/
+local void EditorEditAiPropertiesOk(void)
+{
+    Menu *menu;
+
+    menu = FindMenu("menu-editor-edit-ai-properties");
+    if (menu->items[1].d.gem.state == MI_GSTATE_CHECKED) {
+	UnitUnderCursor->Active = 1;
+    } else {
+	UnitUnderCursor->Active = 0;
+    }
+    GameMenuReturn();
+}
+
+/**
+**	Cancel button from menu-editor-edit-ai-properties
+*/
+local void EditorEditAiPropertiesCancel(void)
+{
+    GameMenuReturn();
+}
+
+
 /**
 **	Called from menu, to quit editor to menu.
 **