diff --git a/classes/feeditem/common.php b/classes/feeditem/common.php
index 58065b19879e92ecc3c726bf6e3f2379bda1e161..80bebf8fb9db5674d40870e69d227af745af0e3f 100644
--- a/classes/feeditem/common.php
+++ b/classes/feeditem/common.php
@@ -44,13 +44,26 @@ abstract class FeedItem_Common extends FeedItem {
 		}
 	}
 
-	// todo
 	function get_comments_url() {
+		//RSS only. Use a query here to avoid namespace clashes (e.g. with slash).
+		//might give a wrong result if a default namespace was declared (possible with XPath 2.0)
+		$com_url = $this->xpath->query("comments", $this->elem)->item(0);
 
+		if($com_url)
+			return $com_url->nodeValue;
+
+		//Atom Threading Extension (RFC 4685) stuff. Could be used in RSS feeds, so it's in common.
+		//'text/html' for type is too restrictive?
+		$com_url = $this->xpath->query("atom:link[@rel='replies' and contains(@type,'text/html')]/@href", $this->elem)->item(0);
+
+		if($com_url)
+			return $com_url->nodeValue;
 	}
 
 	function get_comments_count() {
-		$comments = $this->xpath->query("slash:comments", $this->elem)->item(0);
+		//also query for ATE stuff here
+		$query = "slash:comments|thread:total|atom:link[@rel='replies']/@thread:count";
+		$comments = $this->xpath->query($query, $this->elem)->item(0);
 
 		if ($comments) {
 			return $comments->nodeValue;
diff --git a/classes/feedparser.php b/classes/feedparser.php
index de6c565428a1a803ea316790da8279b742f389e6..187875b5f9cbf380d70147454ace75ddc3409917 100644
--- a/classes/feedparser.php
+++ b/classes/feedparser.php
@@ -97,6 +97,7 @@ class FeedParser {
 		$xpath->registerNamespace('slash', 'http://purl.org/rss/1.0/modules/slash/');
 		$xpath->registerNamespace('dc', 'http://purl.org/dc/elements/1.1/');
 		$xpath->registerNamespace('content', 'http://purl.org/rss/1.0/modules/content/');
+		$xpath->registerNamespace('thread', 'http://purl.org/syndication/thread/1.0');
 
 		$this->xpath = $xpath;