diff --git a/cmd/user/delete.go b/cmd/user/delete.go
index 2157184f867577f36bf29c33842c8156a15d65cd..bdc5c6d308cb20480a4f4dd8d97f1af696a5e6de 100644
--- a/cmd/user/delete.go
+++ b/cmd/user/delete.go
@@ -78,7 +78,7 @@ func locateUser(login string) (model.User, error) {
     if !loginExists(users, login) {
         return u, fmt.Errorf("Failed to find login in LDAP database: %v", err)
     }
-    filter := searchUser(users, login, "", "", "", "", "")
+    filter := searchUser(users, false, login, "", "", "", "", "")
     if len(filter) != 1 {
         return u, fmt.Errorf(`More than one user matched the login given.
 search made: "useradm user show -l %v"`, login)
diff --git a/cmd/user/show.go b/cmd/user/show.go
index 0fbd4ac0db00d06b6be27dbf39e77a2cf0101312..dd3fb5549eba734ff560d9b405559c3ed55aca49 100644
--- a/cmd/user/show.go
+++ b/cmd/user/show.go
@@ -32,6 +32,8 @@ func init() {
     ShowCmd.Flags().StringP("status", "s", "", "Search by user status (Active/Blocked)")
     ShowCmd.Flags().StringP("homedir", "d", "", "Search by user homedir")
 
+    ShowCmd.Flags().BoolP("ignore", "i", false, "Make the search case-insensitive")
+
     // At least one is required!
     ShowCmd.MarkFlagsOneRequired("grr", "name", "login", "group", "homedir", "status")
 }
@@ -49,10 +51,12 @@ func searchUserFunc(cmd *cobra.Command, args []string) error {
     if err != nil { return err }
     status, err := cmd.Flags().GetString("status")
     if err != nil { return err }
+    ig, err := cmd.Flags().GetBool("ignore")
+    if err != nil { return err }
     users, err := getUsers()
     if err != nil { return err }
 
-    filtered := searchUser(users, login, group, name, grr, status, homedir)
+    filtered := searchUser(users, ig, login, group, name, grr, status, homedir)
 
     for i := range filtered {
         fmt.Printf("%v\n\n",filtered[i].ToString())
@@ -61,14 +65,26 @@ func searchUserFunc(cmd *cobra.Command, args []string) error {
     return nil
 }
 
-func searchUser(users []model.User, l, g, n, r, s, h string) []model.User {
+func searchUser(users []model.User, ig bool, l, g, n, r, s, h string) []model.User {
+
     return Filter(users, func(u model.User) bool {
-        return (r == "" || strings.Contains(u.GRR, r)) &&
-               (n == "" || strings.Contains(u.Name, n)) &&
-               (l == "" || strings.Contains(u.UID, l)) &&
-               (g == "" || strings.Contains(u.GID, g)) &&
-               (s == "" || strings.Contains(u.Status, s)) &&
-               (h == "" || strings.Contains(u.Homedir, h))
+        contains := func(src, substr string) bool {
+            if ig {
+                return strings.Contains(   // normalize if set to ignore 
+                    strings.ToLower(src),
+                    strings.ToLower(substr),
+                )
+            }
+            return strings.Contains(src, substr)
+        }
+
+        // Search
+        return (r == "" || contains(u.GRR, r)) &&
+               (n == "" || contains(u.Name, n)) &&
+               (l == "" || contains(u.UID, l)) &&
+               (g == "" || contains(u.GID, g)) &&
+               (s == "" || contains(u.Status, s)) &&
+               (h == "" || contains(u.Homedir, h))
     })
 }