diff --git a/meta-oe/recipes-extended/md5deep/files/0001-Fix-errors-found-by-clang.patch b/meta-oe/recipes-extended/md5deep/files/0001-Fix-errors-found-by-clang.patch
deleted file mode 100644
index cc7cdc3364..0000000000
--- a/meta-oe/recipes-extended/md5deep/files/0001-Fix-errors-found-by-clang.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 6ef69a26126ee4e69a25392fd456b8a66c51dffd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 15 Nov 2016 02:46:55 +0000
-Subject: [PATCH] Fix errors found by clang
-
-Fixes errors like
-
-../../git/src/hash.cpp:282:19: error: ordered comparison between pointer and zero ('const unsigned char *' and 'int')
-            if(fdht->base>0){
-               ~~~~~~~~~~^~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/hash.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/hash.cpp b/src/hash.cpp
-index 4216157..52f419b 100644
---- a/src/hash.cpp
-+++ b/src/hash.cpp
-@@ -279,7 +279,7 @@ void file_data_hasher_t::hash()
- 		MAP_FILE|
- #endif
- 		MAP_SHARED,fd,0);
--	    if(fdht->base>0){		
-+	    if(fdht->base != (void *) -1){
- 		/* mmap is successful, so set the bounds.
- 		 * if it is not successful, we default to reading the fd
- 		 */
--- 
-1.9.1
-
diff --git a/meta-oe/recipes-extended/md5deep/files/0001-Fix-literal-and-identifier-spacing-as-dictated-by-C-.patch b/meta-oe/recipes-extended/md5deep/files/0001-Fix-literal-and-identifier-spacing-as-dictated-by-C-.patch
new file mode 100644
index 0000000000..69460b314b
--- /dev/null
+++ b/meta-oe/recipes-extended/md5deep/files/0001-Fix-literal-and-identifier-spacing-as-dictated-by-C-.patch
@@ -0,0 +1,128 @@
+From 7d7b60e38ca701819d4d00b38161faddce01e2ae Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 6 Sep 2018 23:21:22 -0700
+Subject: [PATCH] Fix literal and identifier spacing as dictated by C++11
+
+Fixes clang error like below
+
+error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
+|         status("  Known files not found: %"PRIu64, this->match.unused);
+
+Upstream-Status: Submitted [https://github.com/jessek/hashdeep/pull/385/commits/18a6b5d57f7a648d2b7dcc6e50ff00a1e4b05fcc]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/display.cpp  | 16 ++++++++--------
+ src/files.cpp    |  4 ++--
+ src/hash.cpp     |  2 +-
+ src/hashlist.cpp |  4 ++--
+ src/xml.h        |  2 +-
+ 5 files changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/src/display.cpp b/src/display.cpp
+index b23335d..2eddc23 100644
+--- a/src/display.cpp
++++ b/src/display.cpp
+@@ -311,7 +311,7 @@ void display::display_realtime_stats(const file_data_hasher_t *fdht, const hash_
+ 
+ 	ss << mb_read << "MB of " << fdht->stat_megs() << "MB done, ";
+ 	char msg[64];
+-	snprintf(msg,sizeof(msg),"%02"PRIu64":%02"PRIu64":%02"PRIu64" left", hour, min, seconds);
++	snprintf(msg,sizeof(msg),"%02" PRIu64 ":%02" PRIu64 ":%02" PRIu64 " left", hour, min, seconds);
+ 	ss << msg;
+     }
+     ss << "\r";
+@@ -424,14 +424,14 @@ void display::display_audit_results()
+   
+     if (opt_verbose)    {
+ 	if(opt_verbose >= MORE_VERBOSE){
+-	    status("   Input files examined: %"PRIu64, this->match.total);
+-	    status("  Known files expecting: %"PRIu64, this->match.expect);
++	    status("   Input files examined: %" PRIu64, this->match.total);
++	    status("  Known files expecting: %" PRIu64, this->match.expect);
+ 	}
+-	status("          Files matched: %"PRIu64, this->match.exact);
+-	status("Files partially matched: %"PRIu64, this->match.partial);
+-	status("            Files moved: %"PRIu64, this->match.moved);
+-	status("        New files found: %"PRIu64, this->match.unknown);
+-	status("  Known files not found: %"PRIu64, this->match.unused);
++	status("          Files matched: %" PRIu64, this->match.exact);
++	status("Files partially matched: %" PRIu64, this->match.partial);
++	status("            Files moved: %" PRIu64, this->match.moved);
++	status("        New files found: %" PRIu64, this->match.unknown);
++	status("  Known files not found: %" PRIu64, this->match.unused);
+     }
+ }
+ 
+diff --git a/src/files.cpp b/src/files.cpp
+index 89c6984..3dfd363 100644
+--- a/src/files.cpp
++++ b/src/files.cpp
+@@ -509,7 +509,7 @@ int state::parse_encase_file(const char *fn, FILE *handle,uint32_t expected_hash
+         
+ 	    // Users expect the line numbers to start at one, not zero.
+ 	    if ((!ocb.opt_silent) || (mode_warn_only)) {
+-		ocb.error("%s: No hash found in line %"PRIu32, fn, count + 1);
++		ocb.error("%s: No hash found in line %" PRIu32, fn, count + 1);
+ 		ocb.error("%s: %s", fn, strerror(errno));
+ 		return status_t::STATUS_USER_ERROR;
+ 	    }
+@@ -542,7 +542,7 @@ int state::parse_encase_file(const char *fn, FILE *handle,uint32_t expected_hash
+     }
+ 
+     if (expected_hashes != count){
+-	ocb.error("%s: Expecting %"PRIu32" hashes, found %"PRIu32"\n", 
++	ocb.error("%s: Expecting %" PRIu32 " hashes, found %" PRIu32 "\n", 
+ 			fn, expected_hashes, count);
+     }
+     return status_t::status_ok;
+diff --git a/src/hash.cpp b/src/hash.cpp
+index 52f419b..a4b3128 100644
+--- a/src/hash.cpp
++++ b/src/hash.cpp
+@@ -124,7 +124,7 @@ bool file_data_hasher_t::compute_hash(uint64_t request_start,uint64_t request_le
+     
+ 	// If an error occured, display a message and see if we need to quit.
+ 	if ((current_read_bytes<0) || (this->handle && ferror(this->handle))){
+-	    ocb->error_filename(this->file_name,"error at offset %"PRIu64": %s",
++	    ocb->error_filename(this->file_name,"error at offset %" PRIu64 ": %s",
+ 				request_start, strerror(errno));
+ 	   
+ 	    if (file_fatal_error()){
+diff --git a/src/hashlist.cpp b/src/hashlist.cpp
+index b5b275f..eb0d45a 100644
+--- a/src/hashlist.cpp
++++ b/src/hashlist.cpp
+@@ -342,7 +342,7 @@ hashlist::load_hash_file(display *ocb,const std::string &fn)
+     file_data_t *t = new (std::nothrow) file_data_t();
+     if (NULL == t)
+     {
+-      ocb->fatal_error("%s: Out of memory in line %"PRIu64,
++      ocb->fatal_error("%s: Out of memory in line %" PRIu64,
+ 		       fn.c_str(), line_number);
+     }
+ 
+@@ -390,7 +390,7 @@ hashlist::load_hash_file(display *ocb,const std::string &fn)
+       if ( !algorithm_t::valid_hash(hash_column[column_number],word))
+       {
+ 	if (ocb)
+-	  ocb->error("%s: Invalid %s hash in line %"PRIu64,
++	  ocb->error("%s: Invalid %s hash in line %" PRIu64,
+ 		     fn.c_str(),
+ 		     hashes[hash_column[column_number]].name.c_str(),
+ 		     line_number);
+diff --git a/src/xml.h b/src/xml.h
+index bfe0c94..017dba7 100644
+--- a/src/xml.h
++++ b/src/xml.h
+@@ -100,7 +100,7 @@ public:
+     void xmlout(const std::string &tag,const std::string &value){ xmlout(tag,value,"",true); }
+     void xmlout(const std::string &tag,const int value){ xmlprintf(tag,"","%d",value); }
+     void xmloutl(const std::string &tag,const long value){ xmlprintf(tag,"","%ld",value); }
+-    void xmlout(const std::string &tag,const int64_t value){ xmlprintf(tag,"","%"PRId64,value); }
++    void xmlout(const std::string &tag,const int64_t value){ xmlprintf(tag,"","%" PRId64,value); }
+     void xmlout(const std::string &tag,const double value){ xmlprintf(tag,"","%f",value); }
+     void xmlout(const std::string &tag,const struct timeval &ts){
+ 	xmlprintf(tag,"","%d.%06d",(int)ts.tv_sec, (int)ts.tv_usec);
+-- 
+2.18.0
+
diff --git a/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch b/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch
index 3a4c4f4c2c..73c6cb126a 100644
--- a/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch
+++ b/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch
@@ -1,6 +1,8 @@
---- a/configure.ac	2014-08-22 12:22:54.290884351 +0200
-+++ b/configure.ac	2014-08-22 12:23:15.822306295 +0200
-@@ -42,18 +42,6 @@
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac
++++ git/configure.ac
+@@ -42,18 +42,6 @@ case $host in
       ;;		 		     
  esac
  
@@ -19,21 +21,3 @@
  #
  #
  ################################################################
-@@ -71,7 +59,7 @@
- 
- if test $mingw = "no" ; then
-   # add the warnings we don't want to do on mingw
--  $WARNINGS_TO_TEST="$WARNINGS_TO_TEST -Wall -Wstrict-prototypes  -Weffc++"
-+  WARNINGS_TO_TEST="$WARNINGS_TO_TEST -Wall -Wstrict-prototypes  -Weffc++"
- fi
- 
- for option in $WARNINGS_TO_TEST
-@@ -105,7 +93,7 @@
- 
- if test $mingw = "no" ; then
-   # add the warnings we don't want to do on mingw
--  $WARNINGS_TO_TEST="$WARNINGS_TO_TEST  -Weffc++"
-+  WARNINGS_TO_TEST="$WARNINGS_TO_TEST  -Weffc++"
- fi
- 
- for option in $WARNINGS_TO_TEST
diff --git a/meta-oe/recipes-extended/md5deep/md5deep_4.4.bb b/meta-oe/recipes-extended/md5deep/md5deep_git.bb
similarity index 71%
rename from meta-oe/recipes-extended/md5deep/md5deep_4.4.bb
rename to meta-oe/recipes-extended/md5deep/md5deep_git.bb
index bb30abedd9..e8c6864c1f 100644
--- a/meta-oe/recipes-extended/md5deep/md5deep_4.4.bb
+++ b/meta-oe/recipes-extended/md5deep/md5deep_git.bb
@@ -4,13 +4,15 @@ AUTHOR = "Jesse Kornblum, Simson L. Garfinkel"
 HOMEPAGE = "http://md5deep.sourceforge.net"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=9190f660105b9a56cdb272309bfd5491"
-# Release 4.4
-SRCREV = "cd2ed7416685a5e83eb10bb659d6e9bec01244ae"
+
+PV = "4.4+git${SRCPV}"
+
+SRCREV = "877613493ff44807888ce1928129574be393cbb0"
 
 SRC_URI = "git://github.com/jessek/hashdeep.git \
-        file://wrong-variable-expansion.patch \
-        file://0001-Fix-errors-found-by-clang.patch \
-        "
+           file://wrong-variable-expansion.patch \
+           file://0001-Fix-literal-and-identifier-spacing-as-dictated-by-C-.patch \
+           "
 
 S = "${WORKDIR}/git"
 
