yeah, its a common problem with this method of parsing smilies...
in functions.php replace $search_smilie = array(":)",":-)",":smile:", ":D",":-D",":grin:", ":(",":-(",":sad:", "8o","8-o",":shock",":eek:", ":?",":-?",":???:", "8)","8-)",":cool:", ":x",":-x",":mad:", ":p",":P",":-p",":-P",":razz:", ":*",":-*",":oops:", ":'(",":'-(",":cry:", ">:(",">:-(",":evil:", ":roll:", ";)",";-)",":wink:", ":|",":-|",":neutral:", ":o",":-o", ">:)",">:-)",":twisted:", ":lol:","LOL", ":!:", ":?:", ":idea:", ":arrow:", ":mrgreen:");
with: $search_smilie = array(":)",":-)",":smile:", ":D",":-D",":grin:", ":(",":-(",":sad:", "8o","8-o",":shock",":eek:", ":?:",":-?",":???:", "8)","8-)",":cool:", ":x",":-x",":mad:", ":p",":P",":-p",":-P",":razz:", ":*",":-*",":oops:", ":'(",":'-(",":cry:", ">:(",">:-(",":evil:", ":roll:", ";)",";-)",":wink:", ":|",":-|",":neutral:", ":o",":-o", ">:)",">:-)",":twisted:", ":lol:","LOL", ":!:", ":?", ":idea:", ":arrow:", ":mrgreen:");
(note, I just exchanged possitions of ":?" and ":?:"