diff --git a/boot.php b/boot.php
index 451a622c0b..c4bdb1187e 100644
--- a/boot.php
+++ b/boot.php
@@ -1589,4 +1589,25 @@ if(! function_exists('linkify')) {
function linkify($s) {
$s = preg_replace("/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\.\=\_\~\#\'\%]*)/", ' $1', $s);
return($s);
+}}
+
+if(! function_exists('smilies')) {
+function smilies($s) {
+ $a = get_app();
+
+ return str_replace(
+ array( ':-)', ';-)', ':-(', ':(', ':-P', ':-"', ':-x', ':-X', ':-D', '8-|', '8-O'),
+ array(
+ '',
+ '',
+ '',
+ '',
+ '',
+ '',
+ '',
+ '',
+ '',
+ '',
+ ''
+ ), $s);
}}
\ No newline at end of file
diff --git a/images/smiley-cool.gif b/images/smiley-cool.gif
new file mode 100644
index 0000000000..ba90cc36fb
Binary files /dev/null and b/images/smiley-cool.gif differ
diff --git a/images/smiley-cry.gif b/images/smiley-cry.gif
new file mode 100644
index 0000000000..74d897a4f6
Binary files /dev/null and b/images/smiley-cry.gif differ
diff --git a/images/smiley-embarassed.gif b/images/smiley-embarassed.gif
new file mode 100644
index 0000000000..963a96b8a7
Binary files /dev/null and b/images/smiley-embarassed.gif differ
diff --git a/images/smiley-foot-in-mouth.gif b/images/smiley-foot-in-mouth.gif
new file mode 100644
index 0000000000..16f68cc1e9
Binary files /dev/null and b/images/smiley-foot-in-mouth.gif differ
diff --git a/images/smiley-frown.gif b/images/smiley-frown.gif
new file mode 100644
index 0000000000..716f55e161
Binary files /dev/null and b/images/smiley-frown.gif differ
diff --git a/images/smiley-innocent.gif b/images/smiley-innocent.gif
new file mode 100644
index 0000000000..334d49e0e6
Binary files /dev/null and b/images/smiley-innocent.gif differ
diff --git a/images/smiley-kiss.gif b/images/smiley-kiss.gif
new file mode 100644
index 0000000000..4efd549ed3
Binary files /dev/null and b/images/smiley-kiss.gif differ
diff --git a/images/smiley-laughing.gif b/images/smiley-laughing.gif
new file mode 100644
index 0000000000..1606c119e7
Binary files /dev/null and b/images/smiley-laughing.gif differ
diff --git a/images/smiley-money-mouth.gif b/images/smiley-money-mouth.gif
new file mode 100644
index 0000000000..ca2451e102
Binary files /dev/null and b/images/smiley-money-mouth.gif differ
diff --git a/images/smiley-sealed.gif b/images/smiley-sealed.gif
new file mode 100644
index 0000000000..b33d3cca1e
Binary files /dev/null and b/images/smiley-sealed.gif differ
diff --git a/images/smiley-smile.gif b/images/smiley-smile.gif
new file mode 100644
index 0000000000..e6a9e60d5d
Binary files /dev/null and b/images/smiley-smile.gif differ
diff --git a/images/smiley-surprised.gif b/images/smiley-surprised.gif
new file mode 100644
index 0000000000..cb99cdd913
Binary files /dev/null and b/images/smiley-surprised.gif differ
diff --git a/images/smiley-tongue-out.gif b/images/smiley-tongue-out.gif
new file mode 100644
index 0000000000..2075dc1605
Binary files /dev/null and b/images/smiley-tongue-out.gif differ
diff --git a/images/smiley-undecided.gif b/images/smiley-undecided.gif
new file mode 100644
index 0000000000..bef7e25730
Binary files /dev/null and b/images/smiley-undecided.gif differ
diff --git a/images/smiley-wink.gif b/images/smiley-wink.gif
new file mode 100644
index 0000000000..9faf1aff8f
Binary files /dev/null and b/images/smiley-wink.gif differ
diff --git a/images/smiley-yell.gif b/images/smiley-yell.gif
new file mode 100644
index 0000000000..648e6e8791
Binary files /dev/null and b/images/smiley-yell.gif differ
diff --git a/mod/display.php b/mod/display.php
index ec036de625..3691616192 100644
--- a/mod/display.php
+++ b/mod/display.php
@@ -249,7 +249,7 @@ function display_content(&$a) {
'$osparkle' => $osparkle,
'$thumb' => $profile_avatar,
'$title' => $item['title'],
- '$body' => bbcode($item['body']),
+ '$body' => smilies(bbcode($item['body'])),
'$ago' => relative_date($item['created']),
'$lock' => $lock,
'$location' => $location,
diff --git a/mod/network.php b/mod/network.php
index c52bb74fc5..43c55b8e3f 100644
--- a/mod/network.php
+++ b/mod/network.php
@@ -292,7 +292,7 @@ function network_content(&$a, $update = 0) {
'$osparkle' => $osparkle,
'$sparkle' => $sparkle,
'$title' => $item['title'],
- '$body' => bbcode($item['body']),
+ '$body' => smilies(bbcode($item['body'])),
'$ago' => relative_date($item['created']),
'$lock' => $lock,
'$location' => $location,
diff --git a/mod/profile.php b/mod/profile.php
index d09e0187b2..a431f4bdd8 100644
--- a/mod/profile.php
+++ b/mod/profile.php
@@ -388,7 +388,7 @@ function profile_content(&$a, $update = 0) {
'$thumb' => $profile_avatar,
'$sparkle' => $sparkle,
'$title' => $item['title'],
- '$body' => bbcode($item['body']),
+ '$body' => smilies(bbcode($item['body'])),
'$ago' => relative_date($item['created']),
'$lock' => $lock,
'$location' => $location,