diff --git a/include/bbcode.php b/include/bbcode.php
index 63406689a..ef791d9e7 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -509,9 +509,7 @@ function bb_ShareAttributes($share, $simplehtml) {
$text = $preshare.html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8').' '.$userid_compact.":
".$share[3];
break;
case 3: // Diaspora
- $headline = '
";
+ $headline .= ''.html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8').$userid.':
';
$text = trim($share[1]);
@@ -519,7 +517,7 @@ function bb_ShareAttributes($share, $simplehtml) {
$text .= "
";
if (substr(normalise_link($link), 0, 19) != "http://twitter.com/") {
- $text .= $headline.''.trim($share[3])."
";
+ $text .= $headline.''.trim($share[3])."
";
if ($link != "")
$text .= '
[l]';
diff --git a/include/diaspora.php b/include/diaspora.php
index f24487ae5..dd877112b 100755
--- a/include/diaspora.php
+++ b/include/diaspora.php
@@ -2512,6 +2512,26 @@ function diaspora_is_reshare($body) {
if ($body == $attributes)
return(false);
+ $guid = "";
+ preg_match("/guid='(.*?)'/ism", $attributes, $matches);
+ if ($matches[1] != "")
+ $guid = $matches[1];
+
+ preg_match('/guid="(.*?)"/ism', $attributes, $matches);
+ if ($matches[1] != "")
+ $guid = $matches[1];
+
+ if ($guid != "") {
+ $r = q("SELECT `contact-id` FROM `item` WHERE `guid` = '%s' AND `network` IN ('%s', '%s') LIMIT 1",
+ dbesc($guid), NETWORK_DFRN, NETWORK_DIASPORA);
+ if ($r) {
+ $ret= array();
+ $ret["root_handle"] = diaspora_handle_from_contact($r[0]["contact-id"]);
+ $ret["root_guid"] = $guid;
+ return($ret);
+ }
+ }
+
$profile = "";
preg_match("/profile='(.*?)'/ism", $attributes, $matches);
if ($matches[1] != "")