diff --git a/docs/NEWS b/docs/NEWS
index da64dca6..cf9a200e 100644
--- a/docs/NEWS
+++ b/docs/NEWS
@@ -3,6 +3,9 @@
 Version 1.6 ()
 ------------------------------------------------------------------------
 
+    * Karma plugin: Added option to only track votings when users are
+      logged in.
+      
     * Bugfix: Adjust /admin permalink detection so that it does not listen
       on /adminbook for example. Thanks to Lux!
       
diff --git a/include/admin/importers/serendipity.inc.php b/include/admin/importers/serendipity.inc.php
index e12e16b5..06ec304c 100644
--- a/include/admin/importers/serendipity.inc.php
+++ b/include/admin/importers/serendipity.inc.php
@@ -119,6 +119,9 @@ class Serendipity_Import_Serendipity extends Serendipity_Import {
             if (is_array($primary_keys)) {
                 foreach($primary_keys AS $primary_key) {
                     $primary_vals[$primary_key] = $row[$primary_key];
+                    if ($table == 'comments') {
+	                    $primary_vals['entry_id'] = $row['entry_id'];
+                    }
                     unset($row[$primary_key]);
                 }
             } else {
@@ -129,10 +132,13 @@ class Serendipity_Import_Serendipity extends Serendipity_Import {
             if (is_array($fix_relations)) {
                 foreach($fix_relations AS $primary_key => $fix_relation) {
                     foreach($fix_relation AS $fix_relation_table => $fix_relation_primary_key) {
-                        if (isset($primary_vals[$fix_relation_primary_key])) {
+                    
+						if ($table == 'comments' && $fix_relation_table == 'entries') {
+							$assoc_val = $primary_vals['entry_id'];
+						} elseif (isset($primary_vals[$fix_relation_primary_key])) {
                             $assoc_val = $primary_vals[$fix_relation_primary_key];
                         } else {
-                            $assoc_val = $row[$primary_key];
+							$assoc_val = $row[$primary_key];
                         }
                         
                         if (!$this->execute && empty($assoc_val)) {
@@ -185,6 +191,12 @@ class Serendipity_Import_Serendipity extends Serendipity_Import {
                         $this->storage[$table][$primary_key][$primary_val] = $this->counter;
                     }
                 }
+                
+                foreach($this->storage[$table] AS $primary_key => $primary_data) {
+                	foreach($primary_data AS $primary_val => $replace_val) {
+                		serendipity_set_config_var('import_s9y_' . $table . '_' . $primary_key . '_' . $primary_val, $replace_val, 99);
+                	}
+                }
             } else {
                 if ($this->debug && !$this->execute) {
                     echo "Ignoring Duplicate.<br />\n";
diff --git a/plugins/serendipity_event_karma/lang_en.inc.php b/plugins/serendipity_event_karma/lang_en.inc.php
index b3bc5a2b..afd23c60 100644
--- a/plugins/serendipity_event_karma/lang_en.inc.php
+++ b/plugins/serendipity_event_karma/lang_en.inc.php
@@ -116,3 +116,4 @@
 @define('PLUGIN_KARMA_INVALID_INPUT', 'Invalid input!');
 @define('PLUGIN_KARMA_DELETE_VOTES', 'Delete selected votes');
 @define('PLUGIN_KARMA_APPROVE_VOTES', 'Approve selected votes');
+@define('PLUGIN_KARMA_ACTIVE_REGISTERED', 'Only logged-in authors can vote');
diff --git a/plugins/serendipity_event_karma/serendipity_event_karma.php b/plugins/serendipity_event_karma/serendipity_event_karma.php
index 07629d4b..3e04ad02 100644
--- a/plugins/serendipity_event_karma/serendipity_event_karma.php
+++ b/plugins/serendipity_event_karma/serendipity_event_karma.php
@@ -43,7 +43,7 @@ class serendipity_event_karma extends serendipity_event
         $propbag->add('description',   PLUGIN_KARMA_BLAHBLAH);
         $propbag->add('stackable',     false);
         $propbag->add('author',        'Garvin Hicking, Grischa Brockhaus, Gregor V�ltz, Judebert');
-        $propbag->add('version',       '2.4');
+        $propbag->add('version',       '2.5');
         $propbag->add('requirements',  array(
             'serendipity' => '0.8',
             'smarty'      => '2.6.7',
@@ -63,6 +63,7 @@ class serendipity_event_karma extends serendipity_event
             // Functionality options
             'options_tab',
             'karma_active', 
+            'karma_active_registered',
             'extended_only', 
             'max_karmatime', 
             'max_votetime', 
@@ -173,6 +174,14 @@ class serendipity_event_karma extends serendipity_event
                 $propbag->add('default', 'true');
                 break;
 
+            // Is karma voting allowed only for registered authors?
+            case 'karma_active_registered':
+                $propbag->add('type', 'boolean');
+                $propbag->add('name', PLUGIN_KARMA_ACTIVE_REGISTERED);
+                $propbag->add('description', '');
+                $propbag->add('default', 'false');
+                break;
+
             // Min votes to display
             case 'min_disp_votes':
                 $propbag->add('type', 'string');
@@ -1039,6 +1048,10 @@ END_IMG_CSS;
                             // Find out what the admin wants
                             $track_clicks  = serendipity_db_bool($this->get_config('visits_active', true));
                             $track_karma   = serendipity_db_bool($this->get_config('karma_active', true));
+                            
+                            if (serendipity_db_bool($this->get_config('karma_active_registered', false))) {
+                                if (!serendipity_userLoggedIn()) $track_karma = false;
+                            }
                             $track_exits   = serendipity_db_bool($this->get_config('exits_active', true));
 
                             // Get the limits