Index: src/lib/elm_label.c
===================================================================
--- src/lib/elm_label.c	(revision 56065)
+++ src/lib/elm_label.c	(working copy)
@@ -252,27 +252,29 @@
         
         if ((starttag) && (endtag) && (tagtxtlen > key_len))
           {
+             char *eqchar = NULL;
              repbuf = eina_strbuf_new();
              diffbuf = eina_strbuf_new();
              eina_strbuf_append_n(repbuf, starttag, tagtxtlen);
              srcstring = eina_strbuf_string_get(repbuf);
              curlocater = strstr(srcstring, key);
-             if (curlocater)
+             eqchar = curlocater+key_len;
+             if (curlocater && (*eqchar == ' ' || *eqchar == '='))
                {
-                  replocater = curlocater + key_len + 1;
-                  while ((*replocater != '=') && (replocater))
-                    replocater++;
+                  eqchar = strchr(curlocater+key_len, '=');
+                  replocater = eqchar + 1;
 
-                  while ((*replocater) && 
-                         (*replocater != ' ') && 
-                         (*replocater != '>'))
-                    replocater++;
+                  if (*eqchar)
+                    {
+                       while ((*replocater) && (*replocater != ' ') && (*replocater != '>'))
+                         replocater++;
 
-                  if ((replocater - curlocater) > (key_len + 1))
-                    {
-                       replocater--;
-                       eina_strbuf_append_n(diffbuf, curlocater, 
-                                            replocater-curlocater);
+                       if (replocater - curlocater > key_len)
+                         eina_strbuf_append_n(diffbuf, curlocater, 
+                                              replocater-curlocater);
+                       else
+                         insertflag = 1;
+
                     }
                   else
                     insertflag = 1;
