diff --git a/src/delegates/ImageManipulationDelegate.h b/src/delegates/ImageManipulationDelegate.h
index 4a2e5d8..a9f243e 100644
--- a/src/delegates/ImageManipulationDelegate.h
+++ b/src/delegates/ImageManipulationDelegate.h
@@ -15,17 +15,6 @@
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
- *
- *  Additional permission under GNU GPL version 3 section 7:
- *
- *  If you modify this program, or any covered work, by linking or
- *  combining it with the OpenSSL project's OpenSSL library (or a
- *  modified version of that library), containing parts covered by the
- *  terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
- *  grants you additional permission to convey the resulting work.
- *  Corresponding Source for a non-source form of such a combination
- *  shall include the source code for the parts of OpenSSL used as well
- *  as that of the covered work.
  */
 
 #import <QuartzCore/QuartzCore.h>
@@ -63,6 +52,5 @@
         QPixmap drawDefaultUserPixmap(const QSize& size, bool displayPresence, bool isPresent);
         CGImageRef resizeCGImage(CGImageRef image, const QSize& size);
     };
-    
-} // namespace Interfaces
 
+} // namespace Interfaces
diff --git a/src/delegates/ImageManipulationDelegate.mm b/src/delegates/ImageManipulationDelegate.mm
index 3fdd8bd..b5c9fa6 100644
--- a/src/delegates/ImageManipulationDelegate.mm
+++ b/src/delegates/ImageManipulationDelegate.mm
@@ -15,17 +15,6 @@
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
- *
- *  Additional permission under GNU GPL version 3 section 7:
- *
- *  If you modify this program, or any covered work, by linking or
- *  combining it with the OpenSSL project's OpenSSL library (or a
- *  modified version of that library), containing parts covered by the
- *  terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
- *  grants you additional permission to convey the resulting work.
- *  Corresponding Source for a non-source form of such a combination
- *  shall import the source code for the parts of OpenSSL used as well
- *  as that of the covered work.
  */
 #import "ImageManipulationDelegate.h"
 
@@ -58,7 +47,7 @@
         const int radius = (size.height() > 35) ? 7 : 5;
 
         QPixmap pxm;
-        if (c->photo().isValid()) {
+        if (c && c->photo().isValid()) {
             QPixmap contactPhoto((qvariant_cast<QPixmap>(c->photo())).scaledToWidth(size.height()-6));
             pxm = QPixmap(size);
             pxm.fill(Qt::transparent);
@@ -219,11 +208,12 @@
         Q_UNUSED(cat)
         return QVariant();
     }
+
     QVariant
     ImageManipulationDelegate::userActionIcon(const UserActionElement& state) const
     {
         Q_UNUSED(state)
         return QVariant();
     }
-    
+
 } // namespace Interfaces
