diff --git a/src/AudioControls.cpp b/src/AudioControls.cpp
index b86207df1..275ed8bf6 100644
--- a/src/AudioControls.cpp
+++ b/src/AudioControls.cpp
@@ -656,7 +656,10 @@ AudioControls::onSocialButtonClicked()
         m_socialWidget.data()->close();
 
     m_socialWidget = new SocialWidget( m_parent );
-    m_socialWidget.data()->setPosition( m_socialWidget.data()->mapFromGlobal( QCursor::pos() ) );
+    QPoint socialWidgetPos = ui->socialButton->pos();
+    socialWidgetPos.rx() += ui->socialButton->width() / 2;
+    socialWidgetPos.ry() += 6;
+    m_socialWidget.data()->setPosition( m_socialWidget.data()->mapFromGlobal( ui->socialButton->parentWidget()->mapToGlobal( socialWidgetPos ) ) );
     m_socialWidget.data()->setQuery( m_currentTrack->toQuery() );
     m_socialWidget.data()->show();
 }
diff --git a/src/SocialWidget.cpp b/src/SocialWidget.cpp
index 306304ac9..987e368a6 100644
--- a/src/SocialWidget.cpp
+++ b/src/SocialWidget.cpp
@@ -243,7 +243,7 @@ SocialWidget::onGeometryUpdate()
     m_parentRect = m_parent->rect();
 
     QPoint position( m_position - QPoint( size().width(), size().height() )
-                     + QPoint( ARROW_HEIGHT * 3, -ARROW_HEIGHT/2 ) );
+                     + QPoint( 2 + ARROW_HEIGHT * 3, 0 ) );
     if ( position != pos() )
     {
         move( position );