diff --git a/pgadmin/dlg/dlgForeignKey.cpp b/pgadmin/dlg/dlgForeignKey.cpp
index 3b92dfc..887bee0 100644
--- a/pgadmin/dlg/dlgForeignKey.cpp
+++ b/pgadmin/dlg/dlgForeignKey.cpp
@@ -540,8 +540,25 @@ wxString dlgForeignKey::GetDefinition()
 		sql += wxT(" MATCH FULL");
 
 	sql += wxT("\n  ")
-	       wxT(" ON UPDATE ") + rbOnUpdate->GetStringSelection() +
-	       wxT(" ON DELETE ") + rbOnDelete->GetStringSelection();
+		wxT(" ON UPDATE ");
+	switch (rbOnUpdate->GetSelection())
+	{
+	case 0: sql += wxT("NO ACTION "); break;
+	case 1: sql += wxT("RESTRICT "); break;
+	case 2: sql += wxT("CASCADE "); break;
+	case 3: sql += wxT("SET NULL "); break;
+	default: sql += wxT("SET DEFAULT "); break;
+	}
+
+	sql += wxT(" ON DELETE ");
+	switch (rbOnDelete->GetSelection())
+	{
+	case 0: sql += wxT("NO ACTION "); break;
+	case 1: sql += wxT("RESTRICT "); break;
+	case 2: sql += wxT("CASCADE "); break;
+	case 3: sql += wxT("SET NULL "); break;
+	default: sql += wxT("SET DEFAULT "); break;
+	}
 
 	if (chkDeferrable->GetValue())
 		sql += wxT("\n   DEFERRABLE");
diff --git a/pgadmin/dlg/dlgRule.cpp b/pgadmin/dlg/dlgRule.cpp
index eb71e03..5f06796 100644
--- a/pgadmin/dlg/dlgRule.cpp
+++ b/pgadmin/dlg/dlgRule.cpp
@@ -164,8 +164,17 @@ wxString dlgRule::GetSql()
 	if (!rule || didChange())
 	{
 		sql += wxT("CREATE OR REPLACE RULE ") + qtIdent(name)
-		       + wxT(" AS\n   ON ") + rbxEvent->GetStringSelection()
-		       + wxT(" TO ") + table->GetQuotedFullIdentifier();
+		       + wxT(" AS\n   ON ");
+
+		switch (rbxEvent->GetSelection())
+		{
+		case 0: sql += wxT("SELECT "); break;
+		case 1: sql += wxT("INSERT "); break;
+		case 2: sql += wxT("UPDATE "); break;
+		case 3: sql += wxT("DELETE "); break;
+		}
+
+		sql += wxT(" TO ") + table->GetQuotedFullIdentifier();
 		AppendIfFilled(sql, wxT("\n   WHERE ") , txtCondition->GetValue());
 
 		sql += wxT("\n   DO ");
