diff --git a/src/index.js b/src/index.js
index 78d3c9b..7f2b2ce 100755
--- a/src/index.js
+++ b/src/index.js
@@ -8,6 +8,21 @@
 const actionWordRegex = /^:[^:]+:$/;
 const wikiEmojiRegex = /^\[_EMOJI:[^\]]+\]$/;
 
+// Function to strip emoji modifiers and zero-width joiners to get base emoji
+function getBaseEmoji(emoji) {
+  const stripped = emoji
+    // Remove skin tone modifiers (U+1F3FB-U+1F3FF)
+    .replace(/[\u{1F3FB}-\u{1F3FF}]/gu, '')
+    // Remove zero-width joiners (U+200D)
+    .replace(/\u200D/g, '')
+    // Remove variation selectors (U+FE0F, U+FE0E)
+    .replace(/[\uFE0E\uFE0F]/g, '');
+  
+  // Extract the first emoji character using Array spread to handle multi-byte emoji
+  const chars = [...stripped];
+  return chars.length > 0 ? chars[0] : stripped;
+}
+
 const optionDefinitions = [
     { name: 'sparse', alias: 's', type: Boolean, description: 'Print only the files, lines that have POS annotations.'},
     { name: 'help', alias: 'h', type: Boolean, description: 'Print this usage guide.'},
@@ -103,6 +118,12 @@
   const columns = line.trim().split('\t');
 
   const word = columns[1];
+  // Guard clause: if word is undefined, just output the line as-is
+  if (!word) {
+    process.stdout.write(`${line}\n`);
+    return;
+  }
+  
   var new_tag = null;
   if (word.match(wikiEmojiRegex)) {
     new_tag = 'EMOWIKI';
@@ -123,6 +144,11 @@
   if (new_tag) {
     columns[4] = new_tag;
     columns[5] = '_';
+    // For EMOIMG tokens, set lemma to the base emoji (without modifiers)
+    if (new_tag === 'EMOIMG') {
+      columns[2] = getBaseEmoji(word);
+      columns[3] = 'EMOIMG';
+    }
     if (global.standalone) {
       process.stdout.write(fileheader);
       process.stdout.write(header);
